Re: [delphi-br] Salvar conteudo de uma query

2007-06-16 Por tôpico Eduardo Castro Alves
Ta na mão,

type
  TTipo  = (ttAbrir, ttGravar);
  TForm1 = class(TForm)
  ...

procedure ProcessarArquivo(pDataSet: TDataSet; pArquivo: String; pTipo: 
TTipo);
var
   F : TextFile;
   i,
   x : Integer;
   Linha,
   s : String;
   vArquivo : Array [0..MAX_PATH] of Char;

begin

   StrPCopy(vArquivo, pArquivo);
   if (FileExists(vArquivo)) and (pTipo = ttGravar) then
  DeleteFile(vArquivo);
   AssignFile(F, vArquivo);
   if FileExists(vArquivo) then
  Reset(F)
   else
   begin
  Rewrite(F);
  Append(F);
   end;
   case pTipo of
  ttGravar :
 begin
for i := 0 to pDataSet.RecordCount - 1 do
begin
   s := '';
   for x := 0 to pDataSet.Fields.Count - 1 do
   begin
  s := s + pDataSet.Fields[x].AsString;
  if x  pDataSet.Fields.Count - 1 then
 s := s + ';';
   end;
   Writeln(F, s);
end;
 end;
  ttAbrir :
 begin
Readln(F, Linha);
s := '';
x := -1;
for i := 1 to Length(Linha) do
begin
   pDataSet.Append;
   if Linha[i]  ';' then
  s := s + Linha[i]
   else
   begin
  Inc(x);
  case pDataSet.Fields[x].DataType of
 ftDate,
 ftDateTime : pDataSet.Fields[x].AsDateTime := 
StrToDate(s);
 ftInteger  : pDataSet.Fields[x].AsDateTime := 
StrToInt(s);
 ftFloat,
 ftCurrency : pDataSet.Fields[x].AsDateTime := 
StrToFloat(s);
  else
 pDataSet.Fields[x].AsString := s;
  end;
   end;
end;
Inc(x);
pDataSet.Fields[x].AsVariant := s;
pDataSet.Post;
 end;
   end;
   CloseFile(F);

end;

procedure TForm1.btn1Click(Sender: TObject);
begin

   ProcessarArquivo(qry1, 'C:\TESTE.TXT', ttGravar);

end;


QQ Avise !!!

Eduardo
Fco Yahoo escreveu:

 Ola pessoal, estou tendo um problema muito serio aqui comigo, preciso 
 gerar
 um arquivo contendo os registros de uma determinada tabela por periodo,
 portanto eu faria isso construindo uma query:
 If query1.active = true then query1.active:=false;
 query1.sql.clear;
 query1.sql.add('select * from table1 where (condicao) ');
 Agora como eu faço para gravar 1 arquivo contendo esses registros
 Dai pra frente eu nao sei, e tambem como faço para ler esse arquivo e
 inserir os registros dele em uma table,
 Preciso disso, pois estou colocando 1 aplicativo fora do escritorio e 
 tenho
 q capturar tudo o que nesse aplicativo for digitado.

 Agradeco imensamente toda e qualquer ideia;
 Se quizerem podem entrar em contato em pvt
 [EMAIL PROTECTED] mailto:franciscoacao%40hotmail.com
 [EMAIL PROTECTED] mailto:franciscocarlos65%40hotmail.com
 [EMAIL PROTECTED] mailto:fcandrade2001%40yahoo.com.br
 [EMAIL PROTECTED] 
 mailto:fcandrade%40acaocontabilidade.com.br

 [As partes desta mensagem que não continham texto foram removidas]

  



Re: [delphi-br] Salvar conteudo de uma query

2007-06-16 Por tôpico Eduardo
Foi mau eu esqueci de testar o Abrir e estava com erro.

  ttAbrir :
 begin
Readln(F, Linha);
s := '';
x := -1;
pDataSet.Append;
for i := 1 to Length(Linha) do
begin
   if Linha[i]  ';' then
  s := s + Linha[i]
   else
   begin
  Inc(x);
  case pDataSet.Fields[x].DataType of
 ftDate,
 ftDateTime : pDataSet.Fields[x].AsDateTime := 
StrToDate(s);
 ftInteger  : pDataSet.Fields[x].AsDateTime := 
StrToInt(s);
 ftFloat,
 ftCurrency : pDataSet.Fields[x].AsDateTime := 
StrToFloat(s);
  else
 pDataSet.Fields[x].AsString := s;
  end;
  s := '';
   end;
end;
Inc(x);
case pDataSet.Fields[x].DataType of
   ftDate,
   ftDateTime : pDataSet.Fields[x].AsDateTime := StrToDate(s);
   ftInteger  : pDataSet.Fields[x].AsDateTime := StrToInt(s);
   ftFloat,
   ftCurrency : pDataSet.Fields[x].AsDateTime := StrToFloat(s);
else
   pDataSet.Fields[x].AsString := s;
end;
pDataSet.Post;
 end;

Basta usar assim que funciona.

Eduardo



Eduardo Castro Alves escreveu:
 Ta na mão,

 type
  TTipo  = (ttAbrir, ttGravar);
  TForm1 = class(TForm)
  ...

 procedure ProcessarArquivo(pDataSet: TDataSet; pArquivo: String; 
 pTipo: TTipo);
 var
   F : TextFile;
   i,
   x : Integer;
   Linha,
   s : String;
   vArquivo : Array [0..MAX_PATH] of Char;

 begin

   StrPCopy(vArquivo, pArquivo);
   if (FileExists(vArquivo)) and (pTipo = ttGravar) then
  DeleteFile(vArquivo);
   AssignFile(F, vArquivo);
   if FileExists(vArquivo) then
  Reset(F)
   else
   begin
  Rewrite(F);
  Append(F);
   end;
   case pTipo of
  ttGravar :
 begin
for i := 0 to pDataSet.RecordCount - 1 do
begin
   s := '';
   for x := 0 to pDataSet.Fields.Count - 1 do
   begin
  s := s + pDataSet.Fields[x].AsString;
  if x  pDataSet.Fields.Count - 1 then
 s := s + ';';
   end;
   Writeln(F, s);
end;
 end;
  ttAbrir :
 begin
Readln(F, Linha);
s := '';
x := -1;
for i := 1 to Length(Linha) do
begin
   pDataSet.Append;
   if Linha[i]  ';' then
  s := s + Linha[i]
   else
   begin
  Inc(x);
  case pDataSet.Fields[x].DataType of
 ftDate,
 ftDateTime : pDataSet.Fields[x].AsDateTime := 
 StrToDate(s);
 ftInteger  : pDataSet.Fields[x].AsDateTime := 
 StrToInt(s);
 ftFloat,
 ftCurrency : pDataSet.Fields[x].AsDateTime := 
 StrToFloat(s);
  else
 pDataSet.Fields[x].AsString := s;
  end;
   end;
end;
Inc(x);
pDataSet.Fields[x].AsVariant := s;
pDataSet.Post;
 end;
   end;
   CloseFile(F);

 end;

 procedure TForm1.btn1Click(Sender: TObject);
 begin

   ProcessarArquivo(qry1, 'C:\TESTE.TXT', ttGravar);

 end;


 QQ Avise !!!

 Eduardo
 Fco Yahoo escreveu:

 Ola pessoal, estou tendo um problema muito serio aqui comigo, preciso 
 gerar
 um arquivo contendo os registros de uma determinada tabela por periodo,
 portanto eu faria isso construindo uma query:
 If query1.active = true then query1.active:=false;
 query1.sql.clear;
 query1.sql.add('select * from table1 where (condicao) ');
 Agora como eu faço para gravar 1 arquivo contendo esses registros
 Dai pra frente eu nao sei, e tambem como faço para ler esse arquivo e
 inserir os registros dele em uma table,
 Preciso disso, pois estou colocando 1 aplicativo fora do escritorio e 
 tenho
 q capturar tudo o que nesse aplicativo for digitado.

 Agradeco imensamente toda e qualquer ideia;
 Se quizerem podem entrar em contato em pvt
 [EMAIL PROTECTED] mailto:franciscoacao%40hotmail.com
 [EMAIL PROTECTED] mailto:franciscocarlos65%40hotmail.com
 [EMAIL PROTECTED] mailto:fcandrade2001%40yahoo.com.br
 [EMAIL PROTECTED] 
 mailto:fcandrade%40acaocontabilidade.com.br

 [As partes desta mensagem que não continham texto foram removidas]