Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-12-2024
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 288
Poder: 20
identsoft Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 04-12-2024
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 318
Poder: 3
pgranados Va por buen camino
No estas especificando la tabla.
Código SQL [-]
ALTER TABLE NombreDeLaTabla ADD NombreDelCampo VARCHAR(1);
Responder Con Cita
  #3  
Antiguo 04-12-2024
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 288
Poder: 20
identsoft Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 04-12-2024
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 318
Poder: 3
pgranados Va por buen camino
Cita:
Empezado por identsoft Ver Mensaje
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
Que componente estas usando? Yo uso Firedac con Firebird 2.5 y nunca he tenido ningun problema.

Código Delphi [-]
FDQuery.ExecSQL('ALTER TABLE MiTabla ADD MiCampo VARCHAR(4);');
Responder Con Cita
  #5  
Antiguo 04-12-2024
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 288
Poder: 20
identsoft Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 04-12-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.405
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pásanos, si quieres la estructura de la base de datos / tabla para probar.
Responder Con Cita
  #7  
Antiguo 05-12-2024
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 288
Poder: 20
identsoft Va por buen camino
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.
Responder Con Cita
  #8  
Antiguo 05-12-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.405
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ah, que la tabla tiene datos, entonces ese es el problema, busca por ahí.
Responder Con Cita
  #9  
Antiguo 05-12-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.875
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 08-12-2024
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 280
Poder: 2
navbuoy Va por buen camino
y REZAR neftali..... rezar porque todo el volcado salga bien
Responder Con Cita
  #11  
Antiguo 08-12-2024
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.405
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si sabes que el problema es un campo null entonces dale un valor predeterminado según el tipo de campo.
Ejemplo:
Código SQL [-]
update tbClientes set nombre='' where nombre is null
Responder Con Cita
  #12  
Antiguo 09-12-2024
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.875
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por navbuoy Ver Mensaje
y REZAR neftali..... rezar porque todo el volcado salga bien
Eso siempre...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al crear nueva base de datos.. Vales08 Conexión con bases de datos 4 24-07-2012 22:09:26
Nueva columna con numero de linea en sql Playwithfire SQL 5 06-05-2010 00:34:56
Error: ...No se puede crear una nueva transacción, se excedió la capacidad... Roilo Internet 0 05-07-2007 15:33:11
error al crear una tabla ebeltete Firebird e Interbase 7 05-06-2007 19:49:49
error al crear tabla albarchi MySQL 2 10-02-2005 20:26:01


La franja horaria es GMT +2. Ahora son las 12:43:18.


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
Copyright 1996-2007 Club Delphi