12. Utilizando InterBase/Firebird com dbExpress

Neste capítulo, veremos como utilizar o InterBase e o Firebird com os componentes de acesso a dados DataBase Express (DBX). Os componentes DataBase Express estão presentes no Delphi desde a versão 6. Utilizando os componentes DBX podemos desenvolver aplicações para plataforma Win32, .NET e cross-platform (CLX).

Através dos 7 componentes disponíveis na paleta dbExpress, podemos acessar diversos bancos de dados, como: Oracle, DB2, SQL Server, MySQL, InterBase e Firebird. Junto com a instalação do Delphi, temos disponíveis vários drivers para acesso a vários bancos de dados presentes no mercado.

Independente disso, você pode baixar da Internet diversos outros drivers para uma grande variedade de bancos de dados. Para o Firebird, por exemplo, você não precisa mais utilizar o driver disponível para o InterBase, visto que, hoje já existe para download driver DBX específico para o Firebird.

Nota: Você pode baixar o driver do DBX para Firebird a partir do site oficial do banco de dados.

Ao contrário dos componentes IBX e BDE, o DBX requer o uso de dois outros componentes para fazer a manipulação dos dados. Em conjunto com o DataSetProvider e ClientDataSet (Data Access) podemos criar as mais diversas aplicações com as mais diferentes arquiteturas.

Os componentes dbExpress possuem uma arquitetura montada para trabalharem com os componentes DataSnap (antigo Midas) em aplicações de duas e/ou três camadas. Os ResultSet retornados pelos componentes DBX são read-only e unidirecionais, isso é, para que possamos ter a funcionalidade de navegação dos registros e para que possamos alterá-los devemos utilizar o DataSetProvider e ClientDataSet.

O DataSetProvider, cria pacotes contendo os dados disponibilizados pelos Datasets DBX e envia esses pacotes para o ClientDataSet, o qual armazena e manipula os dados em memória. Todas as alterações efetuadas ficam armazenadas em memória pelo ClientDataSet, onde, a partir do método ApplyUpdates retorna as alterações para o DataSetProvider, para que o mesmo crie as instruções SQL e aplique-as no banco de dados. 

Veja na Figura 12.1 a paleta de componentes dbExpress presente no Delphi 2005.

image153.jpg

Figura 12.1. Paleta dbExpress contendo os sete componentes

Veja uma pequena descrição dos componentes presentes na paleta dbExpress:

image155.jpg Podemos fazer a conexão com o banco de dados InterBase ou Firebird. Ao contrário do IBDatabase (IBX), o SQLConnection já trás consigo o suporte a transações;

image157.jpg Podemos acessar uma Table, View, executar uma instrução SQL ou ainda executar uma Stored Procedure;

image159.jpg Retorna um ResultSet read-only a partir de uma instrução Select. A Borland recomenda o uso desse componente para facilitar a migração de aplicações que utilizam BDE com Query para aplicações DBX.

image161.jpg Podemos executar Stored Procedures armazenadas no banco de dados. Como o SQLQuery, a Borland recomenda o uso desse componente durante o processo de migração dos componentes StoredProc (BDE) para os componentes DBX;

image163.jpg Podemos acessar informações específicas de uma Table ou View. Seguindo a idéia dos SQLQuery e SQLStoredProc, esse componente deve ser utilizado apenas durante o processo de migração de aplicações BDE para DBX;

Nota: Para novas aplicações DBX, é recomendado o uso do SQLDataSet, o qual possui as funcionalidades do SQLQuery, SQLStoredProc e SQLTable ao mesmo tempo. 

image165.jpg Deve ser utilizado para monitorar e capturar todas as instruções passadas entre nossa aplicação Delphi e o banco de dados. Normalmente é utilizado durante a fase de desenvolvimento e testes para depuração e análise;

image167.jpg Temos em um único componente a união das funcionalidades do SQLDataSet, DataSetProvider e ClientDataSet. Apesar de possuir as funcionalidades dos três outros componentes, é recomendado o uso separado dos componentes. A utilização do componente SimpleDataSet impossibilita uma possível migração, por exemplo, da aplicação para uma arquitetura três camadas, além de prover maior flexibilidade na manipulação dos métodos, propriedades e eventos dos componentes.

Nota: O SimpleDataSet não vem instalado por padrão. Instale o pacote dcldbxcds90.bpl (para Delphi2005) que esta na pasta Bin no diretório de instalação do Delphi 2005. Para Delphi 7, instale o dcldbxcds70.bpl.

Como comentado anteriormente, os componentes Dataset DBX necessitam do DataSetProvider e ClientDataSet para manipular os dados armazenados na base. Veja a seguir, uma pequena descrição desses dois componentes, os quais estão disponíveis na paleta Data Access do Delphi:

image169.jpg Os pacotes enviados pelo DataSetProvider ficam armazenados em memória na máquina cliente. Diversas alterações podem ser feitas nos dados, onde, apenas após a execução do método ApplyUpdates essas alterações são enviadas para o DataSetProvider aplicar na base de dados.

...
Quer ler esse conteúdo completo? Tenha acesso completo