Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Pasar tabla Paradox.mb a Firebird/Interbase (https://www.clubdelphi.com/foros/showthread.php?t=83125)

bulc 20-03-2013 18:21:11

Alguien usó DataPump de Delphi 7?
 
Quiero pasar los datos de una tabla Paradox a otra en formato InterBase o Firebird. Necesito abrir una Base de Datos nueva en Interbase con alias.
Estoy usando el IBConsole. Abro un servidor llamado Stop que cuelga de InterBase Servers y Local Server. Hago el LogIn. Lo consigo. OK. Elijo en el menú superior, la pestaña DataBase, y la opción Create DataBase. Aparece la ventana del editor de nuevas bases con dos columnas: FileName(s) y Size(Pages). En la parte inferior aparece un editor para el alias.
Ahí me quedo tieso sin saber qué hacer después; ya que no sí si hay que crear tabla o sólo la base para el destino. ¿Alguien me puede echar una manita? Soy de la quinta del tintero palillero, así que paciencia.
El caso es que luego quiero llevar esta base, recién creada, a otro ordenador, porque allí es donde está el DataPump que viene con el Delphi 7. O si no bajaría una versión gratuíta que he visto, de igual nombre.
Creo que estaría bien explicarlo para todos los que están en esa situación. Osea: pasar una base Paradox a una Interbase o Firebird.
Si consigo acabar esto, lo haré en este forito.
Saludos y espero que se entienda.
Bulc.

ElKurgan 21-03-2013 08:23:32

En esta página tienes varios artículos denominados "Pasando de paradox a Interbase"; son algo antiguos, pero a lo mejor te pueden ayudar

Saludos

bulc 13-05-2013 21:04:58

Pasar tabla Paradox.mb a Firebird/Interbase
 
He puesto un hilo con este asunto y lo repito. Seguro que hay muchos usuarios interesados en convertir una tabla Paradox a otra Firebird/Interbase salvando así los datos en este formato Cliente/Servidor.
En muchas versiones Delphi viene una utilidad llamada DataPump.exe (Carpeta BDE) que facilita este proceso. Tan sólo requiere que se tenga un Alias establecido para la tabla origen (.mb) y otro para la de destino (.fdb/.gdb).
Usando el DataBase Desktop se puede crear un alias para la base origen (Paradox) pero no consigo crear un alias para la tabla destino. Y me viene al coco esta duda de novato. ¿Tengo que crear una base de datos para Firebird, primero, y luego una tabla vacía. Uso el IbExpert para el alias. Pero,
¿cómo hago para que el DataPump detecte el ALIAS de la base Firebird/Interbase?.
Por otro lado Database desktop tiene posibilidad de crear un alias para SQL, pero, ¿cómo puede trasladar los datos a una tabla sin crear antes la Base de Datos SQL?.
En fin. Tengo una base de datos con seis mil registros y no es cosa de pasarlos manualmente. Me pregunto si será tan dificil hacer el paso de una tabla a otra por código. ¿Alguien lo ha hecho?
Bueno, si alguien en este club ha usado DataPump, nos podría echar una mano. Creo que tiene gran interés.
No confundir: Hablo de "copiar datos", no de cambiar la tecnología de BDE_Paradox por la de Firebird.
Un saludo a todos los lectores.

ecfisa 13-05-2013 21:31:24

Hola bulc.

Si nos apegamos al punto ( 6 ) de la guía de estilo, hubiera sido mejor que continuaras tu consulta en el hilo anterior...

Combiné ambos hilos bajo el título del último ya que creo que representa mejor la idea de tu consulta.

Saludos :)

bulc 13-05-2013 22:22:27

Gracias
 
Ya tengo la primera parte, el alias de la tabla Paradox. He usado Desktop, aunque tembién se puede hacer con DBEAdministrator.

ecfisa 14-05-2013 23:56:02

Hola bulc.

Fijate si te sirven estos enlaces:
Saludos.

bulc 15-05-2013 14:07:52

Gracias, sobre todo por las instrucciones
 
El DataPump ya lo tenía (al igual que el que venia con Delphi 7). Lo desplegaré y lo probaré. Ya diré algo. He bajado ahora el plug_in (ampliación) para IbExpert para estar convenientemente 'pertrechado'. Mi tabla tiene unos siete mil registros con un gráfico.
Muchísimas gracias.

bulc 18-05-2013 19:46:24

Solucionado. Yo he hecho el traslado Paradox a Firebird
 
Al final he hecho una pequeña aplicación con dos accesos, uno para la tabla paradox y otro para la tabla Firebird. Para la primera usé los componentes
TTable y TDataSource. Para Firebird: TIBDataBase, TIBDataSet (TIBQuery), TIBTransaction, TClientDataSet y TDataSource. La única pega es que en el editor del TIBDataBase se escribe 'localhost:\C:\... mientras que en su propiedad DataBase, difiere. Usa C:\...
Luego metí un pequeño código y todo de un golpe. Para hacerlo más fácil las dos tablas tenian nombres iguales y campos equivalentes.
Código Delphi [-]

While not TableP.EOF do
begin
        ClientDataSetF.Append;
     For I:=1 to TableP.FileCount -1 do
          begin
´                if TableP.Field[i].Value <> null then
                     ClientDataSetF.Fields[i].Value:= TableP.Fields[i].Value;
          end;
    Try
         ClientDataSetF.Post;
         ClientDataSet.ApplyUpdates(0);
         TableP.Next;
    Except
         ClientDataSetF.Cancel;
end;
// El caso es que funciona.

bulc 20-05-2013 11:21:56

El problema está resuelto.


La franja horaria es GMT +2. Ahora son las 07:26:45.

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