Ver Mensaje Individual
  #7  
Antiguo 03-10-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
elrayo76,

Cita:
Empezado por Neftali
...Hay una opción sencilla que es Exportar a CSV...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IBQuery, DB, IBCustomDataSet, IBTable, StdCtrls, IBDatabase;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    DB: TIBDatabase;
    Transaction: TIBTransaction;
    Table: TIBTable;
    Query: TIBQuery;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// DataSet a CSV
procedure WriteDataSetToCSV(DataSet: TDataSet; FileName: String);
var
   List: TStringList;
   S: String;
   i: Integer;

begin

   List := TStringList.Create;

   try

      DataSet.First;

      while not DataSet.Eof do
      begin

         S := '';

         for i := 0 to DataSet.FieldCount - 1 do
         begin
            if S > '' then
               S := S + ',';
            S := S + '"' + DataSet.Fields[i].AsString + '"';
         end;

         List.Add(S);

         DataSet.Next;

      end;

   finally

      List.SaveToFile(FileName);
      List.Free;

   end;

end;

// Inicializa DB
procedure TForm1.FormCreate(Sender: TObject);
begin
   DB.Params.Clear;
   DB.Params.Add('User_Name=SYSDBA');
   DB.Params.Add('Password=masterkey');
   DB.Connected := True;
end;

// Table a CSV
procedure TForm1.Button1Click(Sender: TObject);
begin
   Table.Open;
   WriteDataSetToCSV(Table, 'Table.csv');
   Table.Close;
   ShowMessage('Archivo CSV Generado');
end;

// Query a CSV
procedure TForm1.Button2Click(Sender: TObject);
begin
   with Query do
   begin
      SQL.Clear;
      SQL.Text := 'Select * from EMPLOYEE';
      Open;
      WriteDataSetToCSV(Query, 'Query.csv');
      Close;
      ShowMessage('Archivo CSV Generado');
   end;
end;

end.
El código anterior exporta un TDataSet (Table y Query en Firebird) a un archivo CSV.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 03-10-2013 a las 19:59:33.
Responder Con Cita