Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagepas
uses
  // units necessárias para manipulação de dados oriundos de banco de dados e
  // suas tabelas
  DB, DbClient;
  
const
  // declaração da constante com o nome do arquivo TXT onde os dados
  // serão gravados
  nomeArquivo = '.\exportaDados.txt';

var
  // declarando um objeto chamado cds, do tipo Client Data Set, o qual será
  // utilizado para manipulação dos dados oriundos de uma tabela
  cds: TClientDataSet;
  // declaração do objeto dados, do tipo TStringList, onde os dados a serem
  // exportados serão armazenados no formato do arquivo de dados TXT
  dados: TStringList;
  // declaração da variável a, do tipo inteira para manipulação de
  // estrutura de repetição
  a: integer;
   
begin
  // criando o objeto dados do tipo TStringList
  dados := TStringList.Create();
  // iniciando o ciclo de exportação dos dados
  try
    // criando o client data set cds que receberá todo o conteúdo
    // da tabela
    cds := TClientDataSet.Create(nil);
    // carregando os dados da tabela a ser importada para o cds.
    // o primeiro parâmetro é o nome da pesquisa personalizada
    // o segundo parâmetro diz quais campos serão carregados. Neste caso, todos.
    // o terceiro parâmetro diz qual é o nome da tabela a ser pesquisada e
    // a comparação a ser feita pela cláusula WHERE. Neste caso, se 0 = 0
    // que retorna verdadeiro. Uma "forma" de trazer todos os dados da tabela
    // o quarto parâmetro descreve o tipo de dados de cada campo
    // carregado na pesquisa. Já o quinto parâmetro especifica o
    // tamanho desses campos individualmente.
      cds.Data := dmConexao3c.QueryPegaData('SEL_PESQUISAFILTRO', '*',
                            ['?', '1:s', 'U_IMPORTATXT',              
                            '?', '2:s', '0=0'],   
                            [ftString, ftString, ftString, ftString, ftString],
                            [45, 100, 11, 14, 11]);

    // iniciando estrutura de repetição que fará a exportação de todos os dados
    // da tabela U_IMPORTATXT                          
    for a:=0 to cds.RecordCount - 1 do
    begin
       // montando a estrutura do arquivo de destino dos dados num
       // objeto TStringList. Cada registro será um item na lista.
       // o caracter separador é o ";"
       dados.Add(cds.FieldByName('NOME').value + ';' +
                 cds.FieldByName('EMAIL').value + ';' +
                 cds.FieldByName('CELULAR').value + ';' +
                 cds.FieldByName('DOCUMENTO1').value + ';' +                       
                 cds.FieldByName('DOCUMENTO2').value + ';');
       // carregando o próximo registro
       cds.Next;
    end;
   // finalizando o ciclo de exportação dos dados
   Finally
     // salvando dados no arquivo TXT, se a lista 'dados' não estiver vazia
     if dados.count > 0 then
        dados.SaveToFile(nomeArquivo)
     else
        showMessage('Lista não possui dados a serem exportados.');
     cds.Free;                                                   
   end;

Para facilitar ainda mais o entendimento, foi produzido um vídeo sobre este conteúdo. Para acessá-lo, utilize o link abaixo:

https://vimeo.com/636458547/adba41272e