Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Crear tabla Access a partir de tabla FoxPro (https://www.clubdelphi.com/foros/showthread.php?t=13806)

Tecnic2 31-08-2004 18:29:43

Crear tabla Access a partir de tabla FoxPro
 
Hola,

Necesito crear, a ser posible en tiempo de ejecucion, una tabla access con la misma estructura y datos de una tabla FoxPro.
Hay alguna funcion que lo haga?

Muchas gracias.

Cabanyaler 01-09-2004 08:54:07

Puedes crearla en tiempo de diseño en un directorio donde siempre tengas la estructura de las tablas. Despues ejecutar este fragmento de código extraido de nuevo de Trucomania, que hace copia de ficheros entre directorios:

Código Delphi [-]
 procedure CopyDirectory(Origen, Desti : string);
 var
     Files : integer;
     FOrigen, FDesti : string;
     ok     : boolean;
     Search : TSearchRec;
 begin
      Files := FindFirst(Origen + '\*.*', faAnyFile, Search);
      while Files = 0 do
       begin
            if Search.Attr <> faDirectory then
             begin
                  FOrigen := Origen + '\' + Search.Name;
                  FDesti := Desti + '\' + Search.Name;
                  ok := CopyFile(PChar(FOrigen),PChar(FDesti),false);
                  if not ok then ShowMessage('No se pudo copiar el fichero: '+
                                                                Search.Name);
             end
            else
             begin
                  if (Search.Name <> '.') and (Search.Name <> '..') then
                   begin
                        ok := CreateDir(Desti + '\' + Search.Name);
                        if not ok then ShowMessage('No se pudo crear el directorio: '+
                                                                          Search.Name)
                        else CopiaDirectori(Origen+'\'+Search.Name,Desti+'\'+Search.Name);
                   end;
             end;
            Files := FindNext(Search);
       end;
      FindClose(Search);
 end;

y aplicar la misma técnica descrita en el siguiente enlace:

http://www.clubdelphi.com/foros/showthread.php?t=13807

Donde tampoco se inventa nada, entre otras cosas.

Quizá existan más técnicas, pero esta es la primera que se me ocurre.
Espero haberte ayudado.

Tecnic2 01-09-2004 09:37:37

Muchas gracias pero no me sirve
 
Muchas gracias por responde tan rápido, pero la verdad es que no me sirve.

No puedo tener la tabla Access ya creada ya que en un principio no sé cuantas tablas voy a crear y qué estructura tendrán. Lo único que sé es que a medida que me vaya encontrando en el origen tablas FoxPro, las tengo que ir "clonando" en tablas Access en el destino dentro de un mismo MDB; o sea, que no tengo porqué saber su estructura interna.

Lo he aclarado?

__cadetill 01-09-2004 10:04:59

Hola Cabanyaler
Ante todo..... "força Barça!!!" :D
Bueno, fuera coñas.... He editado tu mensaje para poner la etiqueta [delphi], si no sabes cómo usarle, mira el primer mensaje de cada foro donde se explica su uso

Respecto al problema de Tecnic2 y como no he trabajado casi nunca contra Access....... voy a sugerirte 2 ideas, aunque la base es la misma para las 2 :p

- Abres la tabla FoxPro

- Método 1: mientras recorres con un bucle los TFields de ésta, vas generando una sentencia SQL de creación de tabla (create table). No se si esto lo permitirá Access, pero supongo que sí :rolleyes:

- Método 2: usar el método FieldDef.Add de un TTable mientras recorres los Fields de la tabla Fox y, luego usar el método CreateTable. Tampoco se si lo permitirá Access :rolleyes:

No se, haz las puebas y nos comentas

Tecnic2 01-09-2004 13:16:43

Tampoco me sirve
 
Gracias otra vez pero tampoco me sirve.
Necesito una funcion en Delphi que copie la estructura de una tabla a otra tabla tabla. Y luego otra que me copie los registros de una tabla a otra.
Pero todo ésto sin tener que recorrer uno por uno cada registro de la tabla origen.

__cadetill 01-09-2004 13:34:56

Para crear una tabla... tienes los 2 métodos que te he dicho (si lo quieres hacer por código), no hay más. Lo otro pueden ser herramientas externas

Para el tema de copiar registros.... mírate el TBachMove

jachguate 01-09-2004 13:37:43

Cita:

Empezado por Tecnic2
Gracias otra vez pero tampoco me sirve.
Necesito una funcion en Delphi que copie la estructura de una tabla a otra tabla tabla. Y luego otra que me copie los registros de una tabla a otra.
Pero todo ésto sin tener que recorrer uno por uno cada registro de la tabla origen.

Con todo respeto, amigo... entonces nada te servirá.

Probablemente encontres alguna rutina que automatice el proceso... pero no existe ninguna técnica para traspasar "por arte de magia" los registros de una tabla a otra sin recorrerlos uno por uno.... -esten o no en la misma base de datos, y ya sea que el recorrido lo hagas a pie, o lo haga alguien mas por vos- :mad:

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 09:03:05.

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