Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

TFDQuery.Prepare kann Parametertypen für die INSERT-Abfrage auf MS SQL SERVER nicht bestimmen

Ich würde der Hilfe hier folgen und vermeiden, Prepare bevor Parameter definiert werden (ihre Datentypen sind vollständig spezifiziert). Sie haben nichts außer diesem Hilfehinweis verpasst:

Für gängige ODBC-Treiber (Sie sprechen immer noch mit einem ODBC-Treiber, unabhängig davon, ob sie intern OLE DB verwenden, um mit dem DBMS zu kommunizieren), bestimmt FireDAC keine Parameterdatentypen für den vorbereiteten Befehl. Stattdessen bereitet es eine Befehlsanweisung auf dem Ziel-DBMS vor und versucht, vorhandene aus dem Parameter Sammlung. So wird der Vorbereiten Methode ist implementiert (Tokio).

Die ODBC-API stellt den bereit SQLDescribeParam -Funktion, um Parameterdetails für den vorbereiteten Befehl abzurufen, aber FireDAC verwendet sie (derzeit) nirgendwo. Stattdessen wird die Parametersammlung manuell erstellt. Was nicht falsch ist, denn letztendlich muss der Entwickler wissen, welchen Wert er einem bestimmten Befehlsparameter zuweisen muss, um diesen Werttyp zu kennen.