Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

TFDQuery.Prepare non è in grado di determinare i tipi di parametro per la query INSERT su MS SQL SERVER

Vorrei seguire l'aiuto qui ed evitare di chiamare Prepara prima che i parametri siano definiti (i loro tipi di dati sono completamente specificati). Non ti sei perso altro che questa nota di aiuto:

Per i driver ODBC comuni (si sta ancora parlando con un driver ODBC, indipendentemente dal fatto che utilizzino internamente OLE DB per comunicare con il DBMS), FireDAC non determina i tipi di dati dei parametri per il comando preparato. Invece, prepara l'istruzione di comando sul DBMS di destinazione e cerca di associare quelli esistenti da Parametri collezione. Ecco come Prepara metodo è implementato (Tokyo).

L'API ODBC fornisce SQLDescribeParam funzione per ottenere i dettagli dei parametri per il comando preparato, ma FireDAC non lo utilizza da nessuna parte (in questo momento). Al contrario, lascia la raccolta dei parametri di costruzione manualmente. Il che non è sbagliato, perché alla fine è lo sviluppatore che ha bisogno di sapere quale valore assegnare a un determinato parametro di comando per conoscere questo tipo di valore.