![]() |
Datenbank: firebird • Version: 2.5 • Zugriff über: FireDac (XE3)
Problem mit FireDac(XE3) und Firebird rows
Hallo
folgendes SQL Befehl funktionier in IBExpert einwandfrei
Code:
Meine Firedac-Komponenten verlangen im Rows Befehl aber einen "Echte" Integerwert und keinen Parameter.
select * from tmp_tblRohwerte
order by Messwerte rows :Anzahl to :Anzahl Ich möchte auf diese Weise den Medianen Wert ermitteln und/oder den Mittelwert der mittleren 80% der Werte. Gibt es irgendeine Möglichkeit Firedac zu überreden? Oder kann man die zur Frage stehenden Werte anderswie bekommen? Grüße wo |
AW: Problem mit FireDac(XE3) und Firebird rows
FireDAC ist DB-Übergreifend, daher solltest Du das Limit weglassen und stattdessen die dafür vorgesehenen Eigenschaften verwenden:
Delphi-Quellcode:
FireDac erweitert dann das Select selber je nach DB-Dialekt (ROWS..TO, LIMIT..OFFSET, FETCH FIRST, TOP, WHERE ROWNUM, ...).
FDQuery.FetchOptions.RecsSkip := Anzahl-1;
FDQuery.FetchOptions.RecsMax := 1; |
AW: Problem mit FireDac(XE3) und Firebird rows
HM..
interessante Idee, werde ich auf jeden Fall mal ausprobieren. Zitat:
Ich bin schon am Überlegen, ob ich, da ich jetzt einen Execute Block habe, die Zeile im SQL Text nicht lokalisiere und jedesmal ersetzte. Trotzdem erst mal vielen Dank Ich werde meine Erkenntnisse hier schreiben Grüße wo |
AW: Problem mit FireDac(XE3) und Firebird rows
Wenn Dir die DB-Unabhängigkeit nicht wichtig ist, kannst Du auch die
![]()
Delphi-Quellcode:
IBExpert behandelt wohl durch Parameter-Marker ":" gekennzeichnete Werte wie ein Macro. Die Limits (wie auch Tabellennamen) werden nämlich von den DB-Treibern und dem Optimizer nicht als Parameter akzeptiert.
FDQuery.SQL.Text := 'select * from tmp_tblRohwerte order by Messwerte rows &Anzahl to &Anzahl';
FDQuery.MacroByName('Anzahl').AsInteger := 100; |
AW: Problem mit FireDac(XE3) und Firebird rows
Hallo
vielen Dank. Getestet und funktioniert soweit. Mit diesen Anregungen kann sicher weiterkommen. Vermutlich muss ich meinen Block zerlegen, da "Anzahl" außerhalb des Blocks zurzeit nicht bekannt ist. Was mich wundert ist diese Aussage, da ich das ganze vorher in einer Stored-Procedure hatte und da ging es (in IBExpert) auch einwandfrei - ich hatte eigentlich gedacht, das eine SP ausschließlich von Firebird bearbeitet wird. Zitat:
wo |
AW: Problem mit FireDac(XE3) und Firebird rows
Zitat:
|
AW: Problem mit FireDac(XE3) und Firebird rows
Das Statement aus dem ersten Posting klappt mit FireDAC in XE5 ohne Probleme.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz