Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Mapeo de campo entre IB y DBExpress (https://www.clubdelphi.com/foros/showthread.php?t=2897)

Jan 12-08-2003 01:48:21

Mapeo de campo entre IB y DBExpress
 
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.


La franja horaria es GMT +2. Ahora son las 02:28:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi