domingo, 22 de janeiro de 2012

Delphi - Exportando Tabelas utilizando o Datapump

O Datapump é um programa que vem junto com o Delphi,  e é uma solução simples para realizar a exportação de tabelas de um banco de dados para outro. A seguir irei montar um exemplo que servirá de base para realizar outras importações.
Neste exemplo estarei exportando as tabelas do Microsoft Access 2003 para o Firebird 1.5. Antes de começar a criá-lo, você deverá instalar o driver ODBC para o Firebird que poderá ser encontrado no seguinte link http://prdownloads.sourceforge.net/firebird/Firebird_ODBC_1.2.0.69-Win32.exe, já no Access este driver é instalado automaticamente com sua instalação.A instalação do driver ODBC é extremamente simples, não há nenhuma configuração especial na sua instalação.
O primeiro passo é criar dois aliases para os respectivos bancos citados anteriormente.Vá para o Painel de Controle/Ferramentas Administrativas/Fontes de Dados (ODBC) /Fontes de dados de usuário conforme ilustra a figura 01.

 Figura 01. Fontes de dados do usuário.
Clique no botão Adicionar e escolha o Driver do Microsoft Access(.*mdb) e configure conforme indica a figura 02:

Figura 02. Configuração do Alias do Access.

Não esqueça de selecionar o caminho do banco de dados no botão Selecionar. Faça o mesmo com o Firebird, adicionando o driver Firebird/Interbase e configure conforme ilustra a figura 03:

Figura 03. Configuração do Alias do Firebird.
No Database escolha o caminho do seu banco de dados, o qual irá receber as tabelas do  Microsoft Access. Não esqueça de colocar o Dialeto como 1, mesmo que o seu banco de dados tenha sido criado no dialeto 3. Pronto, agora com os dois alias criados acesse o DataPump conforme indicado na figura 04.

Figura 04. Selecionando o Alias Access.
Escolha o Alias Name ACCESS e clique em Next, irá aparecer uma telinha para colocar o User Name e o Password, como nós não colocamos nem Usuário e nem senha apenas dê um Enter e você verá uma tela igual a mostrada na figura 05.

Figura 05. Selecionando o Alias Firebird.
Escolha o Alias Name FIREBIRD, clique em Next e como no Banco ACCESS, deixe o Usuário e a Senha em branco dando um Enter, pois no caso do Firebird nós já informamos o usuário e a senha no momento da criação do alias..


Figura 06. Escolher tabelas.
Selecione as tabelas e clique em Next. Depois disto o botão Upsize será habilitado. Clique no botão Upsize e você terá uma tela iaugla a mostrada na imagem 07.

Figura 07. Exportação completa.
Agora clique em Done e pronto, só isso, você acabou de exportar as suas tabelas do Microsoft Access para o Firebird.Fique atento a um detalhe, ao exportar tabelas de um banco para outro, pode ocorrer uma incompatibilidade de tipos de campos, um exemplo: se a chave primária da tabela TBCLIENTE do Access tem como tipo de campo Auto-Numeração consequentemente o campo exportado para o Firebird não será Auto-Numeração e sim Inteiro, pois não existe este tipo no mesmo. Uma solução para corrigir este problema neste caso específico seria criar um Generator e incrementá-lo dentro de uma Trigger. Aqui vai um exemplo:

CREATE TRIGGER TRIGGER_INCREMENTA FOR TBCLIENTE ACTIVE
AFTER INSERT POSITION 1
AS
BEGIN
  NEW.COD_CLIENTE = GEN_ID(incrementa,1);
END

Conclusão
Esta ferramenta já acompanha o Delphi a muito tempo e tem auxiliado inúmeros programadores a converter suas bases de dados de uma forma rápida e simples.

Nenhum comentário:

Postar um comentário