![]() |
Error al crear una columna nueva en una tabla
Hola a todos:
Intento crear una columna nueva en una tabla y me da el error "conversion error from string '0'" Para crearlo , el código delphi que utilizo es : sqlvarios .text := " ALTER TABLE add NOMBRECAMPO varchar(4)". Si lo hago a través de Flamerobin el error que da es : SQL Message : -413 Overflow occurred during data type conversion Engine Code : 335544334 Engine Message : conversion error from string "0" Utilizo Delphi XE7 y FIREBIRD 3.0 Alguien sabe que puede ser? Gracias a todos |
No estas especificando la tabla.
|
perdón, ha sido un lapsus, sí que está incluido el nombre de la tabla
sqlvarios .text := " ALTER TABLE nombretabla add NOMBRECAMPO varchar(4)" sqlvarios.execSQL y sigue dando el mismo error |
Cita:
|
Utilizo los DBExpres en este caso sqlQuery
Yo tampoco había tenido este problema hasta ahora. De echo, esta aplicación tiene casi 200 tablas y algunas de ellas con muchos campos. En concreto, en este caso la tabla tiene 116 campos y muchos de ellos creados a través de sqlquery. Pero el problema también me lo da al intentar crear una columna a través de FLAMEROBIN por lo que no creo que sea un problema del componente Gracias por contestar. |
Pásanos, si quieres la estructura de la base de datos / tabla para probar.
|
Gracias a todos por contestar.
Parece que el problema no es de la estructura de la BD sino de los datos en sí. He probado a crear los campos sobre otra BD de otro cliente, pero con la misma estructura y ha funcionado, también lo he probado sobre Firebird 2.5 ( de otro cliente pero con la misma estructura de la BD) y también funciona. Conclusión: el alter table es correcto, la BD está bien y ahora falta encontrar el / los registros que no son correctos, p.e. campos not null que sí están a null, fechas con formato no adecuado, etc... De nuevo gracias a todos. |
Ah, que la tabla tiene datos, entonces ese es el problema, busca por ahí.
|
Seguramente en una tabla vacía funcione. Si la tabla tiene datos y es un campo NOT NULL deberás hacerlo en varios pasos. 1) Mover todos los datos a otra tabla 2) Borrar el contenido de esa 3) Asignar valor por defecto 4) Volver a volcar todos los datos a la tabla original. |
y REZAR neftali..... rezar porque todo el volcado salga bien
|
Si sabes que el problema es un campo null entonces dale un valor predeterminado según el tipo de campo.
Ejemplo:
|
Cita:
:D:D:D |
| La franja horaria es GMT +2. Ahora son las 10:15:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi