Duvida: transformar sentença SQL em arquivo .TXT

01/02/2006

Preciso fazer uma rotina que pegue o resultado de qualquer sentença SQL e transforme em arquivo TXT, com os campos separados por ponto e virgula. Obs: A sentença pode ser Qualquer uma

Ex: tenho a sentença:

Select * from clientes

Resultado:

codigo nome endereco cidade
01 XXXXXXXX CCCCC
02 ZZZZZZZZ BBBBBB

Preciso pegar o resultado desta sentença e transformar em txt:

clientes.txt
01;XXXXXXXXX;CCCCC
02;ZZZZZZZZZ;BBBBBB

Se alguem puder me ajudar eu agradeço.


Obrigado.


Mfilho

Respostas

01/02/2006

Aroldo Zanela

Colega,

Comecei fazer a rotina, mas tenho que ir para uma reunião agora. Se não conseguir terminar o ´raciocício´ usado, informe aqui.

var n, i: Integer;
    linedata: TStringList;
    arquivo: TStringList;
begin
  qryDemos.Open;

  n         := qryDemos.FieldCount;
  linedata  := TStringList.Create;
  arquivo   := TStringList.Create;
  linedata.Delimiter  := ´;´;
  linedata.QuoteChar  := ´"´;

  while not qryDemos.Eof do
  begin
    linedata.Clear;
    for i := 0 to n-1 do
    begin
      linedata.Add(qryDemos.Fields[i&93;.AsString);
    end;
    arquivo.Add(linedata.DelimitedText);
    qryDemos.Next;
  end;
  arquivo.SaveToFile(´c:\lixo.txt´);
  ShowMessage(´Ok´);
end;



Responder Citar

01/02/2006

Rodolpho123

Faltou somente dar o [b:cea0bb606e]FreeAndNil[/b:cea0bb606e] nas TStringLists


Responder Citar

01/02/2006

Motta

http://forum.devmedia.com.br/viewtopic.php?t=45948&highlight=dbfile&sid=0fe94d72719425dd3881024ea0cfd89c


Responder Citar

01/02/2006

Mfilho

comecei a fazer a rotina com a dica que me deu só deu erro nas linhas:

linedata.Delimiter := ´;´;
linedata.QuoteChar := ´´´;


arquivo.Add(linedata.DelimitedText);


[Error] Unit1.pas(39): Undeclared identifier: ´Delimiter´

o mesmo nas outras 2 linhas.


Responder Citar

01/02/2006

Mfilho

desde já agradeço a ajuda e a atenção.


Obrigado.


Responder Citar

01/02/2006

Aroldo Zanela

Colega,

Qual versão do Delphi que você está usando? Acho que essa propriedade foi introduzida a partir do Delphi 6.


Responder Citar

01/02/2006

Mfilho

É isso mesmo estava pesquisando e vi que o Delphi 5 (o que estou usando) nào tem estas funções.

O que poderia utilizar no lugar ou como ficaria a rotina sem essas funções.

Nem imagino como possa ficar.

Se puderem me ajudar agradeço.

Obrigado


Responder Citar