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)
-   -   Crear archivo TXT Ayuda (https://www.clubdelphi.com/foros/showthread.php?t=78281)

AnuardMichelen 04-04-2012 16:43:02

Crear archivo TXT Ayuda
 
Saludos a todos hermanos, espero que esten bien.

Nesecito crear un archivo TXT con la siguiente estructura:

1815900037;ALANNAH BRISSO R.;112;12,829.39;PAGO

ya tengo el query pero no se como organizarlo para exportarlo desde la base de datos y me salga de esta manera

este es el query:

Código SQL [-]
  SELECT
  D.cuenta_bancaria,
  D.nombre,
  D.apellido,
  D.id_doctor,
  DT.total_a_pagar
  FROM detalle_nomina_doctores DT
  INNER JOIN DOCTORES D ON D.id_doctor = DT.id_doctor
  WHERE DT.id_nomina = '54'
  AND D.cuenta_bancaria IS NOT NULL

muchas gracias

Delphius 04-04-2012 16:58:51

Firebird cuenta con la posibilidad de crear tablas externas, aunque no he probado dicho recurso. En el manual hay más información al respecto. De lo que recuerdo haber leído es que estos se pueden guardar con cualquier extensión, incluso txt.
Ahora bien, no se si almacena los datos con alguna estructura similar a la que buscas.

La otra posibilidad es que hagas uso de alguna herramienta como FBExport. Aunque creo que este utilitario lo que hace es exportar datos desde una tabla y no es posible generar una consulta de la cual extraer los datos concretos. Al menos con las tablas externas se puede indicar la consulta de donde sacar los datos.

En caso de no guardarlo con la estructura que buscas el remedio casero más simples es reemplazar los carácteres de separación por el que deseas; algo trivial que el Bloc de Notas lo hace.
O de última te tomas las molestias de hacer el trabajo a mano: ejecutar la consulta e ir recorriendo el conjunto de datos y concatenando los campos y pasándolos a un archivo.

Saludos,

AnuardMichelen 04-04-2012 17:01:35

gracias hermano, estare esperando, mientras tanto avanzo manual

maeyanes 04-04-2012 17:44:37

Hola...

Haciendo algunas pruebas, veo que las tablas externas de firebird no se guardan en texto puro, aunque la extención la pongas en .txt


Saludos...

ecfisa 04-04-2012 20:22:39

Hola.

Aunque creo que buscabas hacerlo desde la base de datos, igual te apunto otra opción, hacerlo desde Delphi mediante un TIBQuery:
Código Delphi [-]
var
  TS: TStrings;
begin
  with IBQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT D.cuenta_bancaria,D.nombre,D.apellido,D.id_doctor, DT.total_a_pagar ');
    SQL.Add('FROM detalle_nomina_doctores DT ');
    SQL.Add('INNER JOIN DOCTORES D ON D.id_doctor = DT.id_doctor ');
    SQL.Add('WHERE DT.id_nomina = :nomina AND D.cuenta_bancaria IS NOT NULL');
    ParamByName('nomina').AsString:= EditNomina.Text; // (o '54')
    Open;
    TS:= TStringList.Create;
    try
      while not Eof do
      begin
        TS.Add(FieldByName('cuenta_bancaria').AsString + ';' +
               FieldByName('nombre').AsString + ';' +
               FieldByname('apellido').AsString + ';' +
               FieldByName('id_doctor').AsString + ';' +
               FieldByName('total_a_pagar').AsString);
        Next;
      end;
      Close;
      TS.SaveToFile('C:\ARCHIVO.TXT');
    finally
      TS.Free;
    end;
  end;

Saludos.

jafera 05-04-2012 10:03:31

A mi no me ha quedado claro lo que quieres.

Según entiendo quieres exportar los registros de una tabla en formato txt desde el gestor de base de datos externo a delphi.

Si es así yo utilizo el IBConsole, (obsoleto ya lo se), pero desde la tabla abierta viendo los datos haces boton derecho encima escoges export data y te permite txt, csv, ibx y xml.

Desde aquí te permite tambien hacer la operación a la inversa, es decir importar los datos de todos los formatos detallados anteriormente.

Yo lo he utilizado muchas veces ya que me pasan datos en hojas excel o ficheros de texto, las pongo como quiero, ajusto el formato e importo para no tener que rascar miles de códigos.

Si lo que quieres es generar un fichero txt desde la aplicación delphi, utiliza el codigo de ecfisa.

Si lo que quieres es exportar el formato de la tabla, es otra cosa.

Espero te sirva.

Saludos


La franja horaria es GMT +2. Ahora son las 06:02: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