![]() |
SQL error code = -303 ¿como solucionar?
Saludos cordiales,
tengo en una tabla firebird 1.5, un campo definido como MIN01 NUMERIC(3,2), y le asigno el valor 480 y me da el error del título. Lo hago así: TABLA.FIELDBYNAME('MIN01').ASFLOAT:=480; y al hacer TABLA.POST; da el error. también desde IBEXPERT le intento poner el valor al campo, y al cambiar de registro da el mismo error. Agradecería información de donde conseguir el listado de los errores de SQL, o si me decís como solucionar este error puntual. Gracias por anticipado. |
Esto fue lo que encontre con una pequeña búsqueda en yahoo sobre "SQL Error Codes", espero que te pueda servir.
Cita:
¿porque no pruebas asignar 480.00 en lugar de solo 480? Igual y funciona. |
Resp
|
Prueba tambien hacer esto:
TABLA.FieldValues['MIN01']:=480; |
Hola,
Por lo que tengo entendido, InterBase guarda el físicamente el valor como smallint, integer o double precision. Precision de 1 a 4 smallint, de 5 a 9 integer y partir de 9 double Tu campo definido como MIN01 NUMERIC(3,2), lo multiplica por 100 para guardarlo y guarda la escala (el numero de decimales) en una tabla del sistema para despues restaurar el numero original. Saludos. |
Gracias a todos,
intenté grabar 480,00 y me da el mismo error, en el fichero LANGREF.PDF de la documentación de Interbase no he visto el error -303, y en la respuesta de Contraveneno hace referencias a campos date,time, etc. He cambiado la definición del campo de NUMERIC (3,2) a (5,2) y a funcionar, me parece un poco raro. Repito las GRACIAS, da gusto ver que hay personas dispuestas a ayudar a los que estamos empezando. |
resp
Si no puedes con el enemigo unetele.
Declara el campo como double prescion |
La franja horaria es GMT +2. Ahora son las 23:30:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi