FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Crear tabla pdx a partir de dbf
Hola, tengo algunos sistemas hechos en clipper y dbfs y quiero pasarlos a pdx y d5.
Como puedo hacer para crear las tablas pdx a partir de la estructura de la dbf y ademas agregarle los datos?. Lo he hecho con D.Desktop, pero mi intencion es hacerlo automatico dentro del codigo asi le instalo el nuevo programa al cliente y solo le actualiza los datos. Salu2. Gracias |
#2
|
||||
|
||||
Busca en la ayuda acerca de CreateTable. Incluye un ejemplo de cómo crear la estructura de una tabla por código. Simplemente tienes que guiarte de eso para crear los campos según la estructura de la tabla DBase.
Una vez creada la tabla puedes llenarla recorriendo con un ciclo la tabla DBase e insertando registros y copiando los valores de los campos. O bien con una consulta del estilo insert into tabla paradox select * from tabla dbase // Saludos |
#3
|
||||
|
||||
También puedes utilizar si es para un caso transitorio una utilidad que viene con Delphi.
C:\Archivos de programa\Archivos comunes\Borland Shared\BDE datapump.exe Con esta herramienta pasas las tablas de Dbf a Pdx, sin ningún problema con campos memo... Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#4
|
||||
|
||||
Gracias, Marcos, pero mi intencion es hacerlo desde el codigo mismo, para instalar el mismo programa en todos mis clientes y que se cree la base automaticamente, sino deberia correr del datapump o el desktop en todas las maquinas, no?
Una pregunta que no habia puesto. Debo crear un Ttable vacio para apuntar a la base dbase? Y que pasa con la ubicacion de la misma? Deberia primero saber donde esta, no? Salu2 y gracias otra vez. Leonardo |
#5
|
|||
|
|||
Saludos:
La verdad no se si ya pudiste resolver tu problema, apenas estoy viendo este hilo pero te voy a decir como resolvi esa situacion cuando me paso a mi, yo utilize el batchmove que viene en la paleta de delphi. Espero te sirva. |
#6
|
||||
|
||||
Gracias Trex2000. La verdad es que me he dedicado a otras cosas y no pude hacer y no pude hacer ninguna prueba mas.
Intentarte con lo tu me indicas y te aviso. Salu2. |
#7
|
||||
|
||||
Basándote en este ejemplo sacado de Trucomanía, creo que no te sería
dificil lograr lo que quieres. Código:
procedure TForm1.Button1Click(Sender:TObject); begin if not Table1.Exists then begin Table1.Active := FALSE; {Aqui el Alias/Here, the alias} Table1.DatabaseName := 'Alias'; Table1.TableType := ttParadox; {Aqui el nombre de la tabla/Here, the Table name} Table1.TableName := 'Nombre de la Tabla'; with Table1.FieldDefs do begin Clear; Add('IntegerField', ftInteger, 0, FALSE); Add('StringField' , ftString , 30, FALSE); Add('LogicalField', ftBoolean, 0, FALSE); Add('FloatField' , ftFloat , 0, FALSE); Add('DateField' , ftDate , 0, FALSE); Add('TimeField' , ftTime , 0, FALSE); end; Table1.CreateTable; end; end; Si quieres añadir algún indice, mirate la propiedad IndexDefs que es similar a la FieldDefs que hemos usado.
__________________
Guía de Estilo de los Foros Cita:
|
#8
|
||||
|
||||
Gracias Marcos por tu respuesta.
|
|
|
|