sql >> Base de Datos >  >> RDS >> Sqlserver

TFDQuery.Prepare no puede determinar los tipos de parámetros para la consulta INSERT en MS SQL SERVER

Seguiría la ayuda aquí y evitaría llamar a Prepare antes de que se definan los parámetros (sus tipos de datos están completamente especificados). No te has perdido nada más que esta nota de ayuda:

Para los controladores ODBC comunes (todavía está hablando con un controlador ODBC, sin importar si utilizan internamente OLE DB para comunicarse con el DBMS), FireDAC no determina los tipos de datos de parámetros para el comando preparado. En su lugar, prepara la declaración de comando en el DBMS de destino e intenta vincular las existentes desde el Parámetros recopilación. Así es como Prepare se implementa el método (Tokio).

La API de ODBC proporciona SQLDescribeParam función para obtener detalles de parámetros para el comando preparado, pero FireDAC no lo usa en ninguna parte (en este momento). En su lugar, deja la recopilación de parámetros de construcción manualmente. Lo cual no está mal, porque al final, es el desarrollador quien necesita saber qué valor asignar a un determinado parámetro de comando para conocer este tipo de valor.