Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-09-2007
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
tabla paradox a firebird

hola amigos... tengo el siguiente problema....

Actualmente tengo aproximadamente unas 40 tablas paradox, todos distintas entre si en cuanto a campos y registros...

quiero hacer un programa en delphi 2006, que lea los datos de las tablas paradox y que guarde los datos en las tablas firebird.

habia pensado hacerlo de la siguiente manera. Con el IBConsole generar una base de datos, den tro de esta base de datos, crear las distintas tablas (las equivalentes a las paradox, mismo nombre incluso) con sus respectivos campos.

Luego con un pequeño programa en delphi que me lea los datos de la tabla paradox y los escriba en la tabla firebird.

Me funcion, pero solo lo hice con una sola tabla, ya que me demore demasiado...

Pregunta... existe algun codigo para generar columnas en las tablas, copiando el nombre del campo de la tabla paradox....

Trate de utilizar el IBPump, pero me dio error, si que decidi realizarlo por medio de codigo.

Este fue el codigo que utilize para una tabla pequeña.-

Código Delphi [-]
begin
IBTABLE1.Close;
IBDATABASE1.DatabaseName:='LOCALHOST:C:\TABLAS\DATOS.FDB';
IBTABLE1.TableName:='CLAVES';
IBTABLE1.Open;
IBTABLE1.EmptyTable;
TABLE1.close;
table1.DatabaseName:='c:\datos';
table1.TableName:='claves2.db';
table1.Open;
Table1.First;
While not Table1.EOF do
begin
ibTable1.append;
ibTable1.FieldByName('usuario').asstring:= table1.FieldByName('usuario').asstring;
ibTable1.FieldByName('nombre').asstring:= table1.FieldByName('nombre').asstring;
ibTable1.FieldByName('clave').asstring:= table1.FieldByName('clave').asstring;
ibTable1.FieldByName('nivel').asstring:= table1.FieldByName('nivel').asstring;
ibTable1.FieldByName('empresa').asstring:= table1.FieldByName('empresa').asstring;
//Aquí sigues igualando
ibTable1.Post;
Table1.Next;
end;
IBTransaction1.CommitRetaining;
end;

lo que necesito se algun codigo que me lea el nombre del campo de la tabla antigua, y luego cree un campo en la tabla nueva con el mismo nombre dle anterior.... es posible hacer eso???

muchas gracias por su tiempo.... saludos
Responder Con Cita
  #2  
Antiguo 27-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, para eso es el DataPump, que es un software de uso gratuito y que lo encontraras en la pagina de Clever Components .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 27-09-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Si los campos de una y otra tabla son iguales:

Código Delphi [-]
begin
  IBTABLE1.Close;
  IBDATABASE1.DatabaseName:='LOCALHOST:C:\TABLAS\DATOS.FDB';
  IBTABLE1.TableName:='CLAVES';
  IBTABLE1.Open;
  IBTABLE1.EmptyTable; 
  TABLE1.close;
  table1.DatabaseName:='c:\datos';
  table1.TableName:='claves2.db';
  table1.Open;
  Table1.First;
  While not Table1.EOF do
  begin
    ibTable1.append;
    for i := 0 to table1.Fields.Count - 1 do
      ibTable1.Fields[i].Value:= table1.Fields[i].Value;
    ibTable1.Post;
    Table1.Next;
  end;
  IBTransaction1.CommitRetaining;
end;
__________________
Saludos.
Responder Con Cita
  #4  
Antiguo 27-09-2007
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
gracias basti por tu ayuda, lo voy a utilizar despues...

lo que me falta ahora es crear la tabla de firebird igual a la de paradox... quiero hacerlo por codigo... creo que va lago asi

Código Delphi [-]
ibtable1.FieldDefs.clear;
ibTable1.Active:= FALSE;
ibdatabase1.Close;
IBDATABASE1.DatabaseName:='LOCALHOST:C:\TABLAS\DATOS.FDB';
ibTable1.TableName    := table1.tablename;
ibdatabase1.Open;
ibtransaction1.active:=true;
x:=table1.FieldDefs.Count;
for I := 1 to X do
  ibTable1.FieldDefs.Add(table1.FieldDefs[i].Name,
   table1.FieldDefs[i].datatype,
   table1.FieldDefs[i].Size, FALSE);

no me funciona.. me tira un error... alguien que me ayude porfavor...


gracias
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
Tabla en paradox nenufer Conexión con bases de datos 7 17-05-2006 11:10:07
Pasar foto de tabla paradox a otra tabla zugazua2001 Varios 1 09-05-2006 02:15:54
Pasar Tabla de Paradox a Firebird JoanKa Firebird e Interbase 4 12-02-2005 02:57:54
exportar una tabla de oracle 9i a paradox o firebird ARCON Oracle 1 28-10-2004 10:38:22
Migrar una tabla de excel a una tabla de paradox lirio Conexión con bases de datos 1 31-05-2003 20:10:20


La franja horaria es GMT +2. Ahora son las 07:53:43.


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