![]() |
Datenbank: Firebird • Version: 2.5.3 • Zugriff über: FireDAC
FireDAC - SQL mit gesetzten Parameter abfragen?
Hallo zusammen,
gibt es die Möglichkeit, sich aus dem TFDQuery den SQL mit den Parameter zurück zu liefern? Beispiel:
Delphi-Quellcode:
Gruß
Query.Sql.Text := 'Insert Into Tabelle1 (ID,Text) Values (:ID,:Text)';
Query.ParamByName( 'ID' ).AsInteger := 1; Query.ParamByName( 'Text' ).AsString := 'Testtext'; ShowMessage( Query.GetSQLTextWithParams {Insert Into Tabelle1 (ID,Text) Values (1,'Testtext')} ); // Möglich??? Eppos |
AW: FireDAC - SQL mit gesetzten Parameter abfragen?
Da die Parameter vom Server in die (prepared) Abfrage eingefüht werden, müsste man die resultierende Abfrage von dort erfragen.
Bei IBDAC/UniDAC kann man das per Monitoring (SQl Monitor). Bei FireDAC gibt es diesen ja auch, könnte also entsprechend funktionieren. |
AW: FireDAC - SQL mit gesetzten Parameter abfragen?
Korrekterweise müsste man sagen: "Da die Parameter eigentlich vom Server in die prepared Abfrage ..." denn speziell FireDAC macht das nicht durchgängig bei jedem Server (wird das überhaupt bei einem gemacht - bis jetzt noch nicht gesehen, bei MySQL definitiv nicht).
|
AW: FireDAC - SQL mit gesetzten Parameter abfragen?
Echt? Damit disqualifiziert sich FireDAC für den professionellen Einsatz.
|
AW: FireDAC - SQL mit gesetzten Parameter abfragen?
Zitat:
|
AW: FireDAC - SQL mit gesetzten Parameter abfragen?
Das wäre dann Abtraktion, wie man sie nicht machen sollte, wenn es ein DBMS gibt, welches keine Parameter kann, dann simuliere diese für alle DBMS.
Laut der Hilfe zu FireDAC sollte es aber richtig funktionieren Zitat:
|
AW: FireDAC - SQL mit gesetzten Parameter abfragen?
Du weißt doch wie es ist: Papier ist geduldig, Wireshark unbestechlich.
Ich habe es auch nicht geglaubt und wurde eines besseren belehrt. |
AW: FireDAC - SQL mit gesetzten Parameter abfragen?
Also bei MSSQL funktioniert es zumindest.
Aus
Delphi-Quellcode:
macht FireDAC laut SQL Server Profiler
SELECT * FROM LIZENZEN
WHERE MAJVERSION < :version
Delphi-Quellcode:
declare @p1 int
set @p1=1 exec sp_prepare @p1 output,N'@P1 int',N'SELECT * FROM LIZENZEN WHERE MAJVERSION < @P1 ',1 select @p1 exec sp_execute 1,9 exec sp_unprepare 1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 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