Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2007
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 18
capo979 Va por buen camino
Exportar datos de firebird a archivo de texto

Hola les quería preguntar si es posible en firebird 1.5 exportar los datos de la base de datos a un archivo de texto dejandolos todos los datos como insert.

La idea es si hay algún programa que trae el instalador del firebird tipo el gbak o alguno que esté en la carpeta bin de firebird que me permita hacer lo antes mencionado.

Muchas gracias por escucharme

saludos a todos
Responder Con Cita
  #2  
Antiguo 14-08-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
El programa Database Worckbench te permite exportar los datos de una tabla de la manera que quieres...
Responder Con Cita
  #3  
Antiguo 14-08-2007
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 18
capo979 Va por buen camino
si eso si se que hay programas que lo hacen pero yo quiero hacerlo desde mi programa en delphi y dejarlo en un archivo en formato de texto. Por ejemplo si el gbak lo permite usaría gbak ya que a mis clientes les doy el gbak. No es una utilidad para utilizarla yo sino directamente mis clientes.
Responder Con Cita
  #4  
Antiguo 14-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
¿Que componentes de conexion a BD usas?
__________________
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
  #5  
Antiguo 14-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, lo mas normal es que tu aplicación tenga descendientes de TDataSet, entonces hice estas dos funciones, que te devuelven la cadena insert, tu diras si te sirven:

Código Delphi [-]

function DatoFormateado(const Campo: TField): String;
begin
  if (Campo is TStringField) or (Campo is TDateField) then
  begin
    Result := ''''+Campo.AsString+'''';
  end
  else
    Result := StringReplace(Campo.AsString, ',', '.', [rfReplaceAll]);
end;

function ExportarInsert(DataSet: TDataSet; Tabla: String): String;
var
  i :Integer;
  cadena :string;
begin
  cadena := '';
  cadena := 'insert into '+Tabla+' values(';
  for i := 0 to DataSet.FieldCount -1 do
  begin
    cadena := cadena + DatoFormateado(DataSet.Fields[i]);
    if ((DataSet.FieldCount -1) = i) then
      cadena := cadena + ')'
    else
      cadena := cadena + ',';
  end;
  Result := cadena + ';';
end;

Solo es cuestion de que pongas a recorrer cualquier DataSet y exportes los resultado de la función ExportarInsert en un archivo, un ejemplo de esto es:

- Coloque un TMemo y una tabla, a los cuales se les hace esto:

Código Delphi [-]
Tabla1.First;
Memo1.Lines.Clear;
while not Tabla1.Eof do
begin
  Memo1.Lines.Add(ExportarInsert(Tabla1, 'TablaPrueba'));
  Tabla1.Next;
end;

Espero te sirva .
__________________
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
  #6  
Antiguo 14-08-2007
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 18
capo979 Va por buen camino
Los componentes de base de datos que utilizo son de la paleta Interbase el TIBDatabase

gracias
Responder Con Cita
  #7  
Antiguo 14-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Ahh bueno, entonces si te sirve la función, ya que los TIBTable, los TIBQuery e IBStoredProc son hijos de TDataSet, podrias usar uno de esos para traer la tabla que quieres y usar la función que mas arriba te he explicado.
__________________
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
  #8  
Antiguo 14-08-2007
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 18
capo979 Va por buen camino
Muchas gracias por todo lo voy a probar

saludos
Responder Con Cita
  #9  
Antiguo 14-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 26
eduarcol Va por buen camino
Hola, esta de pelos el codigo jhony, disculpa que me meta, pero no te sirve un simple respaldo???
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #10  
Antiguo 14-08-2007
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 18
capo979 Va por buen camino
No me sirve un simple respaldo porque mis clientes se pasan los datos entre ellos y para quedar con toda la historia se tienen que pasar parte de la base es un sistema que lo maneja mucha gente por eso

gracias

saludos
Responder Con Cita
  #11  
Antiguo 14-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Gracias eduarcol...

Cita:
Empezado por capo979 Ver Mensaje
No me sirve un simple respaldo porque mis clientes se pasan los datos entre ellos y para quedar con toda la historia se tienen que pasar parte de la base es un sistema que lo maneja mucha gente por eso

gracias

saludos
Bueno, ¿Pero te sirvio la función?.
__________________
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
  #12  
Antiguo 14-08-2007
capo979 capo979 is offline
Miembro
 
Registrado: abr 2007
Posts: 87
Poder: 18
capo979 Va por buen camino
Gracias si la función estuvo joyita asi que ya la estoy usando una masa todo

gracias che!!!

suerte

saludos
Responder Con Cita
  #13  
Antiguo 14-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por capo979 Ver Mensaje
Gracias si la función estuvo joyita asi que ya la estoy usando una masa todo

gracias che!!!

suerte

saludos
Que bueno hombre, .

P.D: No conocia eso de "una masa" .
__________________
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
  #14  
Antiguo 14-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 26
Delphius Va camino a la fama
Cita:
P.D: No conocia eso de "una masa"
Ese término significa: Todo bien, OK, sin problemas, etc.

Se usa mucho en Buenos Aires, o como los llamamos quienes viven en el interior: porteños.
Es evidente que esta persona es de Argentina.

Yo al menos, no se que se use en otros lugares.
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #15  
Antiguo 14-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Delphius Ver Mensaje
Es evidente que esta persona es de Argentina.
Yo también lo deducía asi, pero esa deducción la saque, por lo de "CHE" , pero si no hubiera usado el "CHE", no hubiera sabido de donde era
__________________
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
  #16  
Antiguo 15-08-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 22
Delfino Va por buen camino
Si no me equivoco mucho el componente TIBExtract tb te ayudaria a generar los insert de los datos, miralo y cuentanos..
Cita:
TIBTable, los TIBQuery e IBStoredProc son hijos de TDataSet
o hijas, quien sabe
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #17  
Antiguo 15-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Delfino Ver Mensaje
o hijas, quien sabe
Jo jo jo, en ese caso, dejemoslo en prole. .

Cita:
Empezado por Delfino
Si no me equivoco mucho el componente TIBExtract tb te ayudaria a generar los insert de los datos, miralo y cuentanos..
Pero creo que el TIBExtract esta amarrado a la tecnologia de los IBX, mientras que mi humilde y sencilla funcioncita, funciona con cualquier miembro pertenciente a la prole de TDataSet , estan los BDE, dbexpress, ADO, IBX, componentes como el TClientDataSet, Tablas en memoria como las RXMemoryData y demas familiares
__________________
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
  #18  
Antiguo 15-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
De todas maneras hay que reconocer que estos IBX tienen unas cosas muy divertidas, me puse a buscar un poco, sobre lo que Delfino a comentado y me he encontrado con que termine haciendo lo siguiente:

- Puse un TIBDatabase en un Form, tambien un TIBExtract, un TButton, un TMemo y un TIBTransaction, a los cuales no les cambie el nombre, pero hice los respectivos enlaces.

En el OnClick del Boton hice...

Código Delphi [-]
Memo1.Lines.Clear;
IBExtract1.ExtractObject(eoTable, 'Lista', [etData]); //Lista es el nombre de la tabla que quice llamar
Memo1.Lines := IBExtract1.Items;

Y adivinen que... todo funciono de maravillas y a una velocidad impresionante. La verdad es que son divertidos estos componentes
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 15-08-2007 a las 04:12:01. Razón: Especificar que es 'Lista'
Responder Con Cita
  #19  
Antiguo 15-08-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Acabo de hacerle una pequeña mejora a la función que mas arriba explique llamada DatoFormateado, resulta que cuando un dato es menor a su tamaño del campo, toma el resto como espacios y no creo que eso sea conveniente para nadie, de manera pues que la función quedaria asi:

Código Delphi [-]
function DatoFormateado(const Campo: TField): String;
begin
  if (Campo is TStringField) or (Campo is TDateField) then
  begin
    Result := ''''+Trim(Campo.AsString)+'''';
  end
  else
    Result := StringReplace(Campo.AsString, ',', '.', [rfReplaceAll]);
end;

Y el resto sigue igual .
__________________
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
  #20  
Antiguo 15-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Hablando de cosas divertidas, hay otro componente que extrae la información de la base de datos. El componente IBDatabaseInfo.

Código Delphi [-]
var
  I: Integer;
begin
  IBDataBase1.Open;
  Memo1.Lines.Add(IBDataBaseInfo1.Version);
  Memo1.Lines.Add(IBDataBaseInfo1.DBFileName);
  Memo1.Lines.Add(IBDataBaseInfo1.DBSiteName);
  for I := 0 to IBDataBaseInfo1.UserNames.Count - 1 do
      Memo1.Lines.Add(IBDataBaseInfo1.UserNames[i]);
  Memo1.Lines.Add(InttoStr(IBDataBaseInfo1.CurrentMemory));
  Memo1.Lines.Add(InttoStr(IBDataBaseInfo1.MaxMemory));
  IBDataBase1.Close;
end;

Haber que les parece

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
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
Como extraer los datos de un archivo de texto JamesD OOP 3 23-12-2005 18:29:20
Dudas al momento de pasar de Firebird a Archivo Texto rogeriobeltran Firebird e Interbase 2 20-01-2005 00:09:44
Dudas en la creación de un archivo de texto desde FireBird teletranx Firebird e Interbase 13 19-03-2004 17:20:14
Cargar datos desde archivo texto mosorio Firebird e Interbase 1 25-08-2003 21:54:36
exportar data a archivo de texto morfeo21 Varios 2 13-06-2003 18:07:23


La franja horaria es GMT +2. Ahora son las 19:56:53.


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