Ver la Versión Completa : Equivalencia campo mysql e interbase
David82
01-06-2010, 14:22:41
Hola a todos, he pasado una base de datos mysql a interbase con la intencion de utilizarla en un programa que ya tengo funcionando, pero en algunos campos me da errores, como por ejemplo los tipo DATE en mysql los tengo que pasar a TIMESTAMP en interbase. Alguien sabe la equivalencia entre otros tipos de datos? Porque al pasar un tipo DOUBLE a DECIMAL me da el siguiente fallo:
Client SQL dialect 1 does not support reference to 64-bit numerical datatype
He probado con DECIMAL y NUMERIC, y con varias precisiones pero no hay manera.
Un saludo!
Casimiro Notevi
01-06-2010, 14:26:46
Prueba a usar campos "double" para los números.
Las fechas no sé con seguridad, aunque con firebird que es muy parecido, existen 3 tipos: date, time y timestamp... donde se almacenan fechas, horas y fechashoras... respectivamente.
Ten en cuenta que con interbase/firebird existen el dialecto 1 y el 3. Con el dialecto 1 sólo existen campos date que almacenan fecha y hora juntos.
Sin embargo con dialecto 3 existen los 3 tipos que te he referenciado antes.
David82
01-06-2010, 14:34:24
Perdona pero soy un poco nuevo, para cambiar entre dialectos como puedo hacerlo?
Muchas gracias.
Casimiro Notevi
01-06-2010, 14:51:18
Puedes cambiarlo con la utilidad gfix, la encontrarás en el directorio 'bin' de interbase/firebird.
Aquí (http://www.intitec.com/varios/gfix.pdf) tienes un sencillo tutorial en formato pdf con los parámetros que acepta.
También creo recordar que se puede cambiar mediante sentencia sql, algo así como:
set dialect 3
David82
02-06-2010, 10:47:21
He utilizado el gfix, no me ha dado ningún error pero tampoco me ha solucionado el problema, me continua dando el mismo error.
También he probado con la sentencia en el editor SQL y me da el siguiente mensaje:
Executing of script failed
Format '%d' invalid or incompatible with argument
Y por último probé a cambiar el campo a double precision y me da:
Unsuccessful metadata update
Cannot change datatype for DEBE. Conversion from base type 64-bit numeric to DOUBLE PRECISION is not supported
Cuando ejecuto en el IBconsole la sentencia sql que da problemas en el programa la hace bien, por lo que pienso que el problema estará a la hora de interpretar los datos por parte del delphi, tal vez en los campos de la query, que los tengo definidos como TFloatField
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.