PDA

Ver la Versión Completa : ¿Copiar una base de datos en otra?


andres
23-02-2004, 18:10:37
Hola programadores del club Delphi.

Requiero de su amable ayuda para que me den una luz en el siguiente problema:

Tengo que copiar el contenido de una base de datos en otra, la vaina es que
la nueva tiene nuevas tablas, atributos, etc.

He mirado en los foros y he encontrado ayudas para copiar el contenido de
una tabla a otra, en diferentes BD, tambien tengo el IB Expert, que con su
herramienta SQL Editor permite hacer lo mismo, pero el problema al que me enfrento,
y que no domino es:

¿como lo hago si la base de datos "origen", no tiene la estructura igual a
la "destino"? ya que ha sufrido actualizaciones de tablas, atributos, etc..

¿Como puedo copiar el contenido de la BD, si cuando intento copiar el de
una tabla tengo problemas con las llaves primarias y foraneas?

Trabajo con firebird 1.5, y Delphi 6 pro

Ojala aguien pueda darme luz en este asunto.

muchas gracias a todos.

Andres

jachguate
23-02-2004, 18:29:01
Podes armarte un proceso que "a mano" y teniendo en cuenta las diferencias estructurales entre una base de datos y otra, "traduzca" los registros entre ellas.

Algo como:


Begin
Tabla1BD1.First;
While not Tabla1BD1.eof do
Begin
Tabla1BD2.Insert;
Tabla1BD2.FieldByName('Campo1').AsInteger := ObtenerValorDerivadoDe(Tabla1BD2.FieldByName('Campo1').AsString;
Tabla1BD1.Next;
End;
End


Hasta luego.

;)

Firibiri
23-02-2004, 18:34:25
Hola!
Pues yo utilizo el IBDataPump y me va muy bien.Ya he traspasado varias bases de datos y no he tenido muchos problemas.
Hay una opción que te deshabilita los Triggers,eso sí repásate luego que todo esté bien consistente.
Te lo puedes bajar de aquí
http://www.clevercomponents.com/downloads/IBPump.zip

Espero haber sido de ayuda.

Saludos