PDA

Ver la Versión Completa : Mapeo de campo entre IB y DBExpress


Jan
12-08-2003, 01:48:21
No se si este es el foro adecuado para esta pregunta, mis disculpas si me he equivocado.

Lo que me ocurre es lo siguiente:
Tengo una tabla con un campo de tipo NUMERIC(4,1). Cuando creo una consulta con DBExpress, este campo me lo mapea al tipo TBCDField con lo que todo va correctamente. El problema es cuando creo un procedimiento almacenado con un parámetro de este tipo, que me lo mapea como ft SmallInt con lo que el valor del único decimal que deseo me lo redondea. Ha probado a cambiar manualmente la propiedad DataType del parámetro (en el TSQLStoredProc) a varios tipo, pero el resultado es el mismo (depurando a través del VCL he podido comprobar que internamente cambia el valor que le asigno a SmallInt).

Agradezco por adelantado cualquier sugerencia.

Carlitos
12-08-2003, 12:44:37
Si no encuentras otra solución prueba directamente a ejecutar el procedimiento como una sentencia sql y formateas los argumentos con Format, usando un TSQL:

SQL.SQL.Text := Format('execute procedure myproc(%f)',[FloatVar]);
SQL.ExecQuery;

El propio motor se encargará de la conversión y suele ser más rápido y sencillo que utilizar un TIBStoredProc. El mismo SQL lo puedes utilizar para ejecutar varios procedimientos sin mucha complicación y creación de variables y complejidades...

Jan
12-08-2003, 19:06:12
Muchísimas gracias, enseguida lo pruebo.

Jan
13-08-2003, 00:49:51
Funciona como la seda, Carlitos (Bueno, mejor dicho va, que la seda no "funciona":)

Me has salvado la vida.