Buscar

Método para importação/exportação de tabelas

nome

Wiliam Zacarias

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

Método para Importação/Exportação de Tabelas

 

Neste artigo pretendo estabelecer de uma forma bem prática o uso de um método para importação/exportação de tabelas de dados que utilizam Drivers Dbase/Paradox. Para isso, criaremos um projeto de conversão simples, porém, com detalhes interessantes, como a criação dos componentes Table  através de linhas de comando, para que analisemos com maior clareza esta interessantíssima classe TTable.

 

Classe             -     Componente   -  Propriedade  -  Valor

TEdit              -     Edit_Origem   -  Text              -   C:\ORIGEM\

Tedit               -    Edit_Destino   -  Text              -   C:\DESTINO\

TLabel            -    Label1             - Caption          - Caminho de Origem

TLabel            -    Label2             - Caption          - Caminho de Destino

 

Inclua ainda um componente Gauge e um componente SpeedButton (ou qualquer outro botão que desejar), lembrando que neste exemplo a propriedade Name do Botão será igual a Bexportar.

 

Ficando o nosso Form conforme abaixo:

 

 

Toda a nossa rotina ficará no evento Onclik do Botão (Bexportar), ficando da seguinte forma:

 

procedure TForm1.bexportarClick(Sender: TObject);

Var mTabela_origem,

    mTabela_Destino  : TTable;  // classe para a nossa Tabela

 

    m_codigo : String;

Begin

 

 mTabela_origem  := TTable.Create(self);

 // cria um componente Table

 //e associa à variável do mesmo tipo (classe)

 mTabela_origem.Name  := 'TABELA_ORIGEM';

 // Associa a String 'TABELA_ORIGEM' à propriedade "Name" do TTable criado

 

 mTabela_Destino := TTable.Create(self);

 mTabela_Destino.Name := 'TABELA_DESTINO';

 Try

   //// Configurando a Tabela de Origem dos Dados

   With mTabela_origem do

   Begin

     Close;

     //Fecha a tabela para configurar as propriedades do TTable

     DataBaseName := 'C:\ORIGEM\';

     // Caminho para o arquivo de dados

     TableType    := ttDBase;

     // Tipo de Driver utilizado pelo arquivo de dados

     exclusive    := true;

     //Utiliza a tabela em modo exlusivo

     TableName    := 'TABELA_O.DBF';

     // Nome da tabela de origem

     Open;

     First;

     Gauge1.progress := 0;

     Gauge1.MaxValue := recordcount;

   End;

 

    //// Configurando a Tabela de Destino dos Dados

   With mTabela_destino do

   Begin

     close;

     DataBaseName := 'C:\DESTINO\';

     TableType    := ttParadox;

     exclusive    := true;

     TableName    := 'TABELA_D.DB';

     Open;

   End;

 

   With mTabela_origem do

   Begin

     While not Eof do

     Begin

       Application.ProcessMessages;

       Gauge1.progress := recno;

 

       m_codigo := fieldbyname('codigo').asstring;

       // neste exemplo vamos exportar apenas o campo código da tabela

 

       With mTabela_Destino do

       Begin

        indexfieldnames := 'CODIGO';

        //Utilizaremos o índice CODIGO para evitar duplicidade de código

        if not findkey([m_codigo])then

        Begin

          Append;

          fieldbyname('CODIGO_DEST').asstring := m_codigo;

          Post;

        End;

       End;

 

       Next;

     End;

   End;

 

   ShowMessage('Acabou.');

 

 finally

   mTabela_origem.free;

   mTabela_Destino.free;

 End;

end;

 

 

O Exemplo com o código fonte pode ser baixado clicando aqui!

 

Fonte: Esta rotina foi criada com base em módulos da “Sysmac - Softwares e Consultoria”.  

 

Espero ter colaborado.

 -(Wiliam Zacarias)-

wiliam@delphi.eti.br

 

Publicidade

Vote no artigo




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes do artigo

Categoria: Outros
Adicionado dia: 16/08/05
Por: Wiliam Zacarias
Visualizado: 27641 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009