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)
-   -   librearia para generar exportacion de datos a un script sql (https://www.clubdelphi.com/foros/showthread.php?t=44644)

pvizcay 11-06-2007 23:08:48

librearia para generar exportacion de datos a un script sql
 
buenass..

alguien conoce alguna librería o utilidad para realizar ese trabajo, o ¿hay que escribir de cero todo el código a mano..?

(con exportación a un script sql me refiero que genere las sentencias
INSERT INTO T1 VALUES(XXX)
...
...

en un archivo con los datos de la BD actual como para poder llevarlos a otras)

gracias por cualquier comentario

sitrico 12-06-2007 01:15:38

Usa el IBExpert.

http://www.hk-software.net/ibexpert....943-0-0-00.php

Una vez instalado Abre una tabla y busca:

Tabla -> Exportar datos dentro de un script

También puedes exportar la Metadata

Herramientas -> Extraer metadata

pvizcay 13-06-2007 03:37:23

buenas, gracias por tu comentario

tal vez no aclaré bien, pero tiene que ser una función de mi aplicación.. por lo tanto programas de terceros con código cerrado no cuentan..

saludos

sitrico 13-06-2007 03:57:17

Entonces te toca irte a mano:

No tengo en este equipo el ejemplo que queria mostrarte pero de memoria :cool: :


Código Delphi [-]
Var
SQLText : tStringList;
s : String;
i : Integer;
Begin
SQLText := tStringList.create;
While not tabla.eof do
   Begin
   s := 'Insert Into '+TableName+' (';
   // Los Campos
   for i := 0 to Tabla.fieldcount-1 do
      s := s + Tabla.Fields.field[i].FieldName+', ';
   SetLength(s,Length(s-2); // para quitar el último ', '
   s := s+') Values (';
   // Los Valores
// Aqui hay que tener claro los tipos de datos
   for i := 0 to Tabla.fieldcount-1 do
      s := s + Tabla.Fields.field[i].AsString+', '; 
   SetLength(s,Length(s-2); // para quitar el último ', '
   s := s+'); ';  // el ; al final se usa en los scripts de firebird
   SQLText.Add(s);
   tabla.Next;
   End;
SqlText.SaveToFile('TuArchivoScript.sql');
SQLText.Free;

Te recomiendo que exportes primero tu tabla con IBExpert Y veas el script que se genera para que ajustes este método para que te quede igualito al de IBExpert. :D

pvizcay 13-06-2007 15:06:36

bueno gracias te lo agradezco

en realidad el método en general para hacerlo no era lo dificil, me preocupa mas la exportación de los datos por el formato con que quedan en el string y problemas para importarlos en distintos entornos

salu2

rastafarey 13-06-2007 19:32:00

Resp
 
Que lo quieres por fin. cada vez que te den una respuesta cvas a tener un pero. Has la pregunt abien echa de us asola vez.

sitrico 14-06-2007 01:31:43

Para analizar el formato puedes usar lo siguiente:
(dentro del codigo anterior)

Código Delphi [-]
If Tabla.Fields.Field[i] is TStringField
               s := s + #39+Tabla.Fields.field[i].AsString+#39+', '// #39 = comilla 
           Else If Tabla.Fields.Field[i] is TIntegerField
               s := s + Tabla.Fields.field[i].AsString+', '
           Else If  ///           .... los demás tipos que uses con su correspondiente conversión


La franja horaria es GMT +2. Ahora son las 12:32:30.

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