Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-06-2011
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Exclamation Modificar campo

Hola a todos en esta ocasion se me presento el siguiente problema. Trabajo con Interbase 6.5 y Delphi 7.
El caso es que ya tengo la aplicacion trabajando con normalidad. Pero pasa que me llegaron unos documentos cuyo numero de digitos es mas largo que el que asigne inicialmente al campo de la table correspondiente en mi base de datos. Inicialmente esta configurada con un tamaño de 6 ya que no se esperaban documentos de un longitud mayor.
Intente ejecutar la siguiente instruccion desde el IBConsole para agrandar el tamaño del campo:


Código SQL [-]
ALTER TABLE MOVCILINDROS ALTER COLUMN DOCUMENTO TYPE VARCHAR(10);





Pero me da el siguiente error:

Unsuccessful metadata update
Column DOCUMENTO from table MOVCILINDROS is referenced in RDB$194
Statement: ALTER TABLE MOVCILINDROS ALTER COLUMN DOCUMENTO TYPE VARCHAR(10)

Ya que tengo creada una vista sobre esta tabla y un par de procedimientos almacenados que usan dicha vista.

La verdad no se como hacer mas grande el campo ya que tiene datos que no puedo perder.
Que me recomiendan hacer??

Desde ya gracias por su atencion
Responder Con Cita
  #2  
Antiguo 02-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes crear la base de datos vacía con la nueva estructura y luego haces un 'ibpump' de los datos de la vieja a la nueva.
Responder Con Cita
  #3  
Antiguo 02-06-2011
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Gracias por la respuesta pero disculpa mi ignorancia podrias explicarme un poco como es un ibpump??
Responder Con Cita
  #4  
Antiguo 02-06-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
En casos así, lo que hago normalmente es algo rudimentario: "Comento" las referencias, hago el cambio y entonces "descomento" las referencias, actualizando lo que tenga que actualizar.

Por ejemplo, en la vista puedes encerrar la declaración de la columna y su referencia en el "Select" entre los símbolos de comentario "/*" y "*/" (o bien "--" al inicio de la línea). Entonces guardas la vista, luego haces el cambio en la tabla y finalmente quitas esos símbolos de comentario de la vista volviendo a guardar ésta.

También puedes comentar sólo la referencia del "Select" que tiene la vista (y no así la declaración de esa columna en la misma), sustituyéndola por un valor literal (digamos que en lugar de "Tabla.CampoACambiar" pongas un simple 3). Esto para que la vista pueda guardarse sin que haya problema por el hecho de que algún procedimiento almacenado hace referencia a sus columnas.

Espero te sirva.

Saludos.
Responder Con Cita
  #5  
Antiguo 02-06-2011
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Gracias por las respuestas voy a probarlas
Responder Con Cita
  #6  
Antiguo 03-06-2011
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Thumbs up Problema resuelto

Muchas gracias ya logre resolver mi problema.
En caso de que alguien le haya pasado lo mismo contare lo que hice.
Me decidi por el consejo de Casimiro sobre hacer un ibpump.
Primero copie toda la definicion de mi base de datos e hice los cambios respectivos (Esa fue la parte mas trabajosa).
Despues, previo Backup, utilice el ibpump que descargue de aqui.
Todo eso lo hice en mi casa con mi copia de la DB. Despues de ver que todo funcionaba bien todo fue cuestion de modificar la propiedad size de mis objetos de campo y listo.
De verdad gracias por la ayuda me salvaron de un lio grande. Pero esta experiencia me sirvio para mejorar mis conocimientos.
Una vez mas gracias a todos.
Responder Con Cita
  #7  
Antiguo 03-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.077
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Para la siguiente vez que te toque hacer algo parecido:
Para extraer la estructura de la BD puedes usar programas como IBexpert, Flamerobin, etc. tienen una opción que se llama "Extraer metadata", esta opción te genera un fichero.sql con la estructura de la BD, así que sólo has de modificar la definición de ese campo y ejecutar ese script sql para volver a generar la BD con la nueva definición.
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
modificar un campo pronto7 SQL 2 15-06-2010 10:04:58
Modificar Campo Calculado RolphyReyes Firebird e Interbase 12 16-01-2009 21:30:23
Modificar una campo dmagui Firebird e Interbase 2 26-11-2005 19:50:09
Modificar campo ya existente FunBit MySQL 4 02-08-2005 09:01:43
Modificar un campo en interbase Ronny Conexión con bases de datos 1 13-01-2005 22:37:38


La franja horaria es GMT +2. Ahora son las 21:01:40.


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