Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FireDAC TFDCommand welches SQL wird zum Server gesendet wenn Params verwendet werden? (https://www.delphipraxis.net/186494-firedac-tfdcommand-welches-sql-wird-zum-server-gesendet-wenn-params-verwendet-werden.html)

Kostas 7. Sep 2015 12:22

Datenbank: Firebird • Version: 2.5 • Zugriff über: FireDac

FireDAC TFDCommand welches SQL wird zum Server gesendet wenn Params verwendet werden?
 
Hallo Zusammen,

in einem TFDCommand steht z.b. das:
Code:
INSERT INTO ADRESS (ADRESSNR, NAMEN, VORNAME)
values (:ADRESSNR, :NAMEN, :VORNAME)
Die Parameter werden zur Laufzeit übergeben und über EXECUTE ausgeführt.
vor dem Execute würde ich gerne das SQL abrufen welches zum Server gesendet wird beim EXECUTE.
Gibt es eine Möglichkeit das abzufragen?
Es müsste also rauskommen:
Code:
INSERT INTO ADRESS (ADRESSNR, NAMEN, VORNAME)
values (11, 'Mein Name', 'Mein Vorname');
Gruß Kostas

mkinzler 7. Sep 2015 12:33

AW: FireDAC TFDCommand welches SQL wird zum Server gesendet wenn Params verwendet wer
 
Es wird kein vollständiges Statement in dieser Form an den Server gesendet. Es parametrisierte Statement wird zuerst an den Server gesendet. Beim Execute werden nur noch die Parameter an den Server gesendetr und dort wird die vorbereitete Abfrage ( prepared Staement) mit den Parametern ausgeführt.

Bernhard Geyer 7. Sep 2015 13:22

AW: FireDAC TFDCommand welches SQL wird zum Server gesendet wenn Params verwendet wer
 
Zitat:

Zitat von Kostas (Beitrag 1314962)
Es müsste also rauskommen:
Code:
INSERT INTO ADRESS (ADRESSNR, NAMEN, VORNAME)
values (11, 'Mein Name', 'Mein Vorname');
Gruß Kostas

Wenn das raus kommen würde dann würden keine Parameter verwendet.

Kostas 7. Sep 2015 17:41

AW: FireDAC TFDCommand welches SQL wird zum Server gesendet wenn Params verwendet wer
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1314971)
Zitat:

Zitat von Kostas (Beitrag 1314962)
Es müsste also rauskommen:
Code:
INSERT INTO ADRESS (ADRESSNR, NAMEN, VORNAME)
values (11, 'Mein Name', 'Mein Vorname');
Gruß Kostas

Wenn das raus kommen würde dann würden keine Parameter verwendet.

Danke für die Infos. Ich dache der Client sendet zum Server immer die Feldernamen mit.

Gruß Kostas

haentschman 7. Sep 2015 17:45

AW: FireDAC TFDCommand welches SQL wird zum Server gesendet wenn Params verwendet wer
 
Zitat:

Danke für die Infos. Ich dache der Client sendet zum Server immer die Feldernamen mit.
Die Feldnamen schon. Die Feldinhalte werden separat übertragen. Damit ist auch SQL Injection nicht mehr möglich. Kannst ja mal danach googlen. :P

Bernhard Geyer 7. Sep 2015 17:56

AW: FireDAC TFDCommand welches SQL wird zum Server gesendet wenn Params verwendet wer
 
Zitat:

Zitat von haentschman (Beitrag 1315006)
Zitat:

Danke für die Infos. Ich dache der Client sendet zum Server immer die Feldernamen mit.
Die Feldnamen schon. Die Feldinhalte werden separat übertragen. Damit ist auch SQL Injection nicht mehr möglich. Kannst ja mal danach googlen. :P

Nicht unbedingt die Feldnamen. Der Server weiß ja welche Parameter in welcher Reihenfolge kommen.
Damit reicht es die ID des Preparte Statments zu senden und die Parameter in der entsprechenden Reihenfolge ohne weiter angaben.

Also: 12, 1, Herbert, 1.1.1999

haentschman 8. Sep 2015 06:25

AW: FireDAC TFDCommand welches SQL wird zum Server gesendet wenn Params verwendet wer
 
Hallöle...:P
Zitat:

Nicht unbedingt die Feldnamen.
...ich meinte die eigentlichen Feldnamen des Statements.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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