Utilizando SGBD FireBird 2.0 com ADO.NET – Parte I

 

De forma básica, irei falar um pouco do ADO.NET antes de exemplificar a utilização com o FireBird 2.0.

ADO.NET é uma “reconstrução”, do antigo ADO, sendo completamente integrado com o .NET Framework, disponibilizando um grande número de classes e possibilitando em uma comunicação bem mais fácil com os SGBD’s. Ou seja, ele nada mais é que um conjunto de classes definidas pelo .NET Framework, que auxilia na comunicação com os SGBD’s.

Vantagens de Usar o ADO.NET

Algumas das vantagens em utilizar o ADO.NET é que você contará com uma alta escalabilidade, desempenho, segurança, performance em seu sistema e maior produtividade.

Agora com o ADO.NET, ao utilizar um DataSet, o mesmo, por padrão, trabalha desconectado. Os dados ficam armazenados em um cachê local, assim a conexão pode ser fechada e o cliente pode trabalhar desconectado, e caso seja necessário uma atualização dos dados, basta efetuar uma nova conexão.

Arquitetura


wousfp1fig01.jpg
Figura. 1: Arquitetura .Net

 

Os componentes que formam a arquitetura do ADO.NET são: Data Source, Data Provider e o DataSet.
• Data Source: representa um banco de dados físico ou um arquivo XML;
• Data Provider: se encarrega de criar as conexões e processar comandos;
• DataSet: representa um ou mais data source na memória.

Componentes do ADO.NET


wousfp1fig02.jpg
Figura. 2: Arquitetura .Net


As classes do ADO.NET estão divididas em dois grupos: Managed Providers e DataClasses.

• Managed providers: objetos que não armazenam dados e são usados para ler e escrever em banco de dados: Connection, DataAdapter, Command e DataReader. Para cada SGBD, existe uma classe para fazer a comunicação com o banco de dados.

• DataClasses: são os objetos que podem armazenar e manipular dados: DataSets, DataTables, DataRows, DataColumns, DataRelations, Constraints e DataView.

Detalhando um pouco os objetos do grupo Managed Providers e DataClasses, temos:

Managed providers:

Connection: é através dessa classe, que será feita a comunicação com o banco de dados. Ela recebe uma string de conexão, onde serão informados os dados para acesso ao banco.

Command: recebe uma string com o comando SQL;

DataAdapter: um repositório para o Command. Dependendo da string passada para o Command, ele será preenchido com os dados resultantes do processamento. Através dos comandos informados, ele realizará junto ao banco de dados, algumas tarefas, como: pesquisar (SelectCommand), inserir (InsertCommand), alterar (UpdateCommand) ou excluir (DeleteCommand). Dependendo do comando, será usado para executar o DataAdapter um desses objetos: ExecuteNonQuery() - usado para INSERT, UPDATE e DELETE, retorna o número de registros afetados; ExcuteEscalar() – usado em consultas, quando deseja-se retornar apenas uma linha e uma coluna, ex.: verificar o saldo total da conta, código do cliente com o cpf XXX, mesmo que a consulta retorne mais de uma linha, ele irá pegar apenas a primeira linha e a primeira coluna; ExecuteReader() – utilizado quando a consulta irá retornar mais de um valor, após a execução, ele preenche o DataReader com os resultados.

DataReader: utilizado para fazer leituras dos registros no banco de dados. Após a execução de uma consulta, o DataReader será preenchido com os resultados das consultas, para posterior leitura e preenchimentos de alguns objetos,
como por exemplo um TextBox.

Para cada SGBD, existe um provider específico, porém, mudando apenas o seu prefixo. Ex: para SGBD Sql Server, possui o prefixo SqlXXX (SqlConnection), para SGBD Oracle, possui o prefixo OracleXXX (OracleCommand), para SGBD FireBird, possui um prefixo FbXXX (FbDataAdapter).

Para poder usar um SGBD através do ADO.NET e com acesso direto ao banco, é necessário verificar se existe um provider para o banco que será utilizado, caso exista, será necessária à instalação do mesmo.

DataClasses:

DataSet: objeto que armazena os dados, uma copia exata ou parcial do banco de dados, possibilitando o trabalho com o banco desconectado. Funciona como um banco de dados em memória, possuindo coleções de tabelas (DataTables), campos (DataColumns), registros (DataRows), constraints (Constraints) e relacionamentos (DataRelations). Os dados que armazenam são manipulados em XML por padrão. Podendo ser passado entre camadas sem nenhum problema.

DataTable: esse objeto representa uma tabela de dados na memória, usado por diversos outros objetos, como o DataSet. Possui alguns métodos que auxiliam na criação de DataTables: DataColumn, DataRow dentre outros. Esse objeto pode tanto ser criado independente como usados por outros objetos.

Existem outros componentes do DataClasses que não serão vistos aqui.

Exemplo de utilização do ADO.NET com Visual Studio 2005

Compreendido o básico do ADO.NET, irei demonstrar como é fácil a utilização do ADO.NET com qualquer banco de dados.

Nesse exemplo, será mostrada a utilização com o SGBD FireBird 2.0.

Lembrando, para que o mesmo possa ser utilizado, é necessária a instalação do provider referente a esse SGBD, que pode ser encontado no link:
http://www.firebirdsql.org/index.php?op=files&id=netprovider

Para baixar o SGBD FireBird 2.0, utilize o link:
http://prdownloads.sourceforge.net/firebird/Firebird-2.0.0.12748-0-Win32.exe?Download

A instalação do SGB FireBird 2.0 é muito simples, basta ir clicando em avançar, seguindo as informações.

Feita a instalação do SGBD FireBird, instale o provider, seguindo as informações passadas pelo assistente de instalação.

Exemplificaremos através da tabela abaixo, a utilização dos principais comandos para trabalhar com banco de dados no ADO.NET, através de uma aplicação simples - cadastro de cliente - utilizando os comandos SQL INSERT, UPDATE, DELETE E SELECT.


wousfp1fig03.jpg
Figura 3: Tabela


Após ter criado a tabela no banco de dados, conforme figura 3, podemos iniciar o processo de construção de nossa aplicação.

Nesse Artigo, utilizaremos o Visual Studio 2005.

Primeiramente iremos criar uma classe para a conexão com o banco de dados:

Dica: Para poder usar essa conexão em qualquer projeto futuro, aconselha-se criar uma DLL (Class Library).

No Visual Studio 2005, clique em File - New - Project. Será aberta a janela de New Project, clique em Visual C# - Windows. Na parte de Templates clique em Class Library e escolha o nome do seu projeto. No nosso caso, o nome escolhido foi Conexao_FireBird.

Para que possamos ter acesso ao provider do FireBird, temos que criar um referência ao mesmo. No Solution Explorer, clique com o botão direito do mouse em cima do nome do projeto, Conexao_FireBird, e escolha Add Reference, aparecerá a janela conforme Figura 4:


wousfp1fig04.jpg
Figura 4: Add Reference


Na aba .Net, procure por FireBirdClient – ADO.NET 2.0 Data Provider, e clique no botão OK.

Agora basta escrever seu código conforme o exemplo abaixo:


using System;
using System.Collections.Generic;
using System.Text;
using FirebirdSql.Data.FirebirdClient;//provider do SGBD FireBird

 


// Conexao_FireBird
// Classe: classe_ConexaoFB
namespace classe_conexao
{


   public class classe_ConexaoFB
   {           


       private string strConexao;//STRING PARA CONEXÃO
       private FbConnection conexao;//OBJETO CONEXÃO


       ///

       /// Construtor Padrão

       ///
       public classe_ConexaoFB() { }


       ///
       /// Construtor
       ///  Recebe como parametro os dados para conexão
       ///
       public classe_ConexaoFB(string strConexao)
       {


           //seta a string de conexão
           set_strConexao(strConexao);

           // configura a conexão
           faz_Conexao();


       }


       ///
       /// Configura a Conexão
       ///  Passa para o construtor da classe FbConnection

       ///  os dados para conexão
       ///

       private void faz_Conexao()
       {
           this.conexao = new FbConnection(get_strConexao());
       }


       ///
       /// Abre a conexão com o banco de dados

       ///
       public void abre_Conexao()

       {

           this.conexao.Open();
       }


       ///
       /// Fecha a conexão com o banco de dados
       ///

       public void fecha_Conexao()
       {
           this.conexao.Close();
       }


       ///
       /// Retorna uma conexao com o banco de dados
       ///

       public FbConnection get_Conexao()

       {
           return this.conexao;
       }


       ///
       /// Seta os dados da conexão recebidos
       /// pelo construtor
       ///      
       public void set_strConexao(string strConexao)
       {
           this.strConexao = strConexao;
       }


       ///
       /// Retorna a string com os dados
       /// para conexao
       ///
       public string get_strConexao()
       {
           return this.strConexao;
       }
   }
}

 

Salve as alterações e clique em Build - Build Solution.

Feito isso, você poderá notar que dentro da pasta Bin/Debug, localizada dentro da pasta de seu projeto, foi criado nossa dll para conexão com o banco FireBird.

Para poder utilizar essa dll com os programas criados, basta adicionar a mesma ao projeto.

 

No próximo artigo, irei demonstrar como usar a dll que criamos, utilizando os comandos SQL INSERT, DELETE UPDATE E SELECT.

 

Até a próxima.