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 de Paradox a Firebird (https://www.clubdelphi.com/foros/showthread.php?t=18420)

JoanKa 11-02-2005 11:48:14

Pasar Tabla de Paradox a Firebird
 
Bueno, ante todo gracias por la atencion prestada...

En un sistema de que tengo desarrollado en Delphi con Paradox tengo una Tabla TArticulos que contiene 41 campos y con 6,000 registros, y como podria ser para pasar esos registros a Firebird.

Estare muy agradecido.

Neftali [Germán.Estévez] 11-02-2005 13:23:46

El DataPump que viene con el BDE te debería servir. Justo es una aplicación para eso. En Internet puedes encontrar varias de éstas, en concreto también existe una (en forma de plugin y de ejecutable) para IBExpert.

"C:\Archivos de programa\Archivos comunes\Borland Shared\BDE\datapump.exe"
(Ubicación predeterminada)

(aplicación sóla)
http://www.clevercomponents.com/Downloads/IBPump.zip

(en formato plug-in los puedes descargar de aqui)
http://www.clevercomponents.com/prod...dpdownload.asp

Elenita62 11-02-2005 14:40:53

Si quieres hacerlo por programación, conecta tus 2 tablas a sus repectivos drivers y en un botón ejecuta un bucle:

If TablaSource.Active = false then
TablaSource.Active := true;
If TablaDestino.Active = false then
TablaDestino.Active := true;
TablaSource.First;
While not TablaSource.EOF do
begin
TablaDestino.Insert;
TablaDestino['Campo1'] := TablaSource['Campo1'];
//Aquí sigues igualando
TablaDestino.Post;
TablaSource.Next;
end;
Espero que te sirva...

JoanKa 11-02-2005 16:41:10

Cita:

Empezado por Elenita62
Si quieres hacerlo por programación, conecta tus 2 tablas a sus repectivos drivers y en un botón ejecuta un bucle:

If TablaSource.Active = false then
TablaSource.Active := true;
If TablaDestino.Active = false then
TablaDestino.Active := true;
TablaSource.First;
While not TablaSource.EOF do
begin
TablaDestino.Insert;
TablaDestino['Campo1'] := TablaSource['Campo1'];
//Aquí sigues igualando
TablaDestino.Post;
TablaSource.Next;
end;
Espero que te sirva...

Eso lo que estado haciendo
Pero la tabla que esta en paradox uso los componentes siguientes:
TTable
TDataSource
Para la tabla que esta en firebird uso los componentes siguientes:
- IBDatabase1
- IBTransaction1
- IBDataSet1

En el boton que me dijiste, hice esto :

procedure TForm1.Btn_ExportarClick(Sender: TObject);
begin
If T_Paradox.Active = false then
T_Paradox.Active := true;
If IBDS_Firebird.Active = false then
IBDS_Firebird.Active := true;
T_Paradox.First;
While not T_Paradox.EOF do
begin
IBDS_Firebird.Insert;
IBDS_Firebird['codi']:=T_Paradox['codi'];
IBDS_Firebird.Post;
T_Paradox.Next;
end;
end;

y obtengo este mensaje

Project Articulos.exe raised exception class EDatabaseError with message 'IBDS_Firebird:No es posible modificar un DataSet de solo lectura'. Proccess stopped. Use Step or Run to continue.

Y el puntero se pone en la linea verde.

Cual sera el error???

PD

Trabajo con Firebird 1.5 y el administrador IBExpert.

Gracias

Paoti 12-02-2005 02:57:54

Cita:

Empezado por JoanKa
:
- IBDatabase1
- IBTransaction1
- IBDataSet1

usa para esto, es mas rapido ya que no haces las sentecias sql tu mismo, las hace.

- IBDatabase1
- IBTransaction1
- IBQuery <--- en su propiedad sql... "Select * from mytabla"
- IBUpdateSQL1


en IBQuery1 en la propiedad UpdateSQL asocialo al IBUpdateSQL1
click boton derecho sobre IBUpdateSQL1, opcion "UpdateSQL Editor"
seleccion tu primary key, y tus campos (Todos) en el recuadro derecho de la ventanita... y dale click en "generate SQL"


ahora ya tienes tu consulta como una tabla editable



nota. al final no te olvides de poner el commit...


La franja horaria es GMT +2. Ahora son las 23:36: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