Firebird .NET Provider

O poder do driver ADO.NET do firebird

·       Introdução

Pra quem ainda não conhece o Firebird.NET provider é um driver de acesso ao firebird para a plataforma Microsoft® .NET®, com esse driver é possível acessar o banco de forma bastante fácil, neste artigo irei ensinar passo a passo como instalá-lo integrando-o junto ao delphi for .NET., explicar suas principais funcionalidades e apresentar alguns exemplos práticos de como utilizá-lo desde a conexão ao banco até a manipulação de backups e usuários.

Em primeiro lugar você deve fazer o download do driver bem como do próprio firebird 1.5 caso já não o tenha. Você os encontra no site oficial: http://www.firebirdsql.org/ , até o final da edição deste artigo as últimas versões estáveis são a 1.7 do driver e a 1.5.3.x. do firebird.

 

·        Instalando o Firebird.NET Provider 1.7 e integrando seus componentes com o delphi 2005/2006

 

A instalação deste provider é bem simples, faça o download do arquivo de instalação e instale normalmente, nenhuma opção adicional será necessária, depois de instalado vamos integrar ele ao delphi para que possamos trabalhar em modo de design com seus componentes, abra o delphi e vá ao menu Component>Instaled .NET Components (lembre-se que se estiver usando o delphi 2006 a personalidade “Delphi for the Microsoft .NET Framework” deve ser carregada para que essa opção esteja disponível), na tela que se abre selecione a guia “.NET Components”.

Imagem 1

 

Logo abaixo de uma lista de assemblys .NET você encontra um campo “Add components” em Category digite “Firebird” sem aspas e então clique em “Select an Assembly” selecione a pasta “C:\Arquivos de programas\FirebirdNETProvider1.7\” e então selecione o arquivo: “FirebirdSql.Data.Firebird.dll”

 

Imagem 2

 

Clique em abrir e então clique em ok, pronto nosso driver está integrado ao design time do delphi, você pode conferir criando uma nova aplicação Winforms e verificando na toolpalete 4 componentes na seção “Firebird”, são eles: FBCommand, FBCommandBuilder, FBConnection e FBDataAdapter.

 

Imagem 3

 

·       Primeiros passos

 

Agora que instalamos e integramos o driver ao delphi já estamos aptos a começar, vou ensinar agora como usar o FBConnection, conectar-se a base de dados, utilizar transações, extração de metadata e outros.

 

Componente FBConnection

 

·        Criando a primeira Connectionstring:

 

Crie um novo projeto WinForms Application e no formulário coloque um FBConnection, note na object inspector a propriedade “ConnectionString” clique no botão desta propriedade e a tela a seguir será exibida:

 

Imagem 4

 

1.      O campo “Data Source” deve ser preenchido com o endereço IP onde seu servidor de banco de dados se encontra instalado, no meu caso o servidor está na própria máquina eu poderia deixar em branco ou digitar localhost;

2.      O campo “Data Source Port” serve para indicar em qual porta o seu servidor de banco de dados está operando, a porta padrão é a 3050;

3.      Em “Dialect” você deve escolher o Dialeto da conexão com o banco de dados, o dialeto padrão é o 3;

4.      Em “Charset” você deve selecionar o Charset do seu banco de dados, o Charset padrão é o NONE;

5.      O campo Database, é o caminho completo para a base de dados, ex: C:\Arquivos de programas\Firebird\Firebird_1_5\examples\EMPLOYEE.FDB

6.      Em login coloque o usuário e senha do seu banco de dados, padrão user = SYSDBA e password = masterkey, você pode definir também uma Role pra esse login ou simplesmente deixar o campo Role em branco.

 

Em “Connection Settings” você encontrará o sistema de connections pooling, se estiver habilitado, a conexão é mantida em memória, assim se você fechar o FBConnection e abrir denovo ele irá reaproveitar esta conexão, tornando mais rápido o processo. Você pode definir o tempo que a conexão ficará armazenada no pool após ser fechada no campo Life Time, se deixar como 0 a conexão ficará no pool até o objeto connection ser destruído. Neste grupo você também encontra a propriedade timeout que é o tempo que o FBConnection irá tentar se conectar antes de retornar um erro (caso a conexão não seja realizada com sucesso). O Packet size serve para indicar o tamanho dos pacotes que serão transmitidos na conexão com o servidor, e por último o Server Type que serve para definir se seu aplicativo vai se conectar a servidor Super ou Classic ou a servidor Embeded.

 

Agora que sabemos pra que serve cada um dos elementos da connectionstring editor vamos nos conectar a um banco de testes, você pode usar o banco de dados de exemplo que vem com o firebird: C:\Arquivos de programas\Firebird\Firebird_1_5\examples\ EMPLOYEE.FDB, copie ele para uma outra pasta para que você tenha sempre uma cópia limpa dele para testar outros exemplos, vamos moldar a connectionstring da seguinte maneira:

 

Imagem 5

 

Lembre-se de substituir o caminho C:\ClubeDelphi\Firebird .NET pelo caminho para onde você copiou o banco de dados EMPLOYE.FDB. Clique em “Test” e veja se a mensagem Connection successful aparece, se sim clique em Accept, veja que agora na propriedade connectionstring está preenchida da seguinte forma:

 

User=SYSDBA;Password=masterkey;Database=C:\ClubeDelphi\Firebird.NET\EMPLOYEE.FDB;
DataSource=;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=0;
Connection timeout=15;Pooling=True;Packet Size=8192;Server Type=0

 

Com base nessa string você pode alterar a conexão via código. Veja um exemplo:

 

function BuildConnectionString(Database, Servidor, User, Pass: System.String): String;

begin

Result := User=+User.ToUpper+;+

Password=+Pass+;+

Database=+Database+;+

DataSource=+Servidor+;+

Port=3050;+

Dialect=3;+

Charset=NONE;+

Role=;+

Connection lifetime=0;+

Connection timeout=15;+

Pooling=False;+

Packet Size=8192;+

Server Type=0;;

end;

 

Usaríamos assim: FbConnection1.ConnectionString := BuildConnectionString(C:\ClubeDelphi\Firebird .NET\ EMPLOYEE.FDB,localhost,SYSDBA,masterkey);

 

ou ainda usar a classe FbConnectionStringBuilder:

function BuildConnectionString(ArquivoFDB: System.String): System.String;

var

FbConnectionStB: FirebirdSQL.Data.Firebird.FbConnectionStringBuilder;

begin

FbConnectionStB := FirebirdSQL.Data.Firebird.FbConnectionStringBuilder.Create;

try

FbConnectionStB.UserID := SYSDBA;

FbConnectionStB.Password := masterkey;

FbConnectionStB.DataSource := localhost;

FbConnectionStB.Database := ArquivoFDB;

FbConnectionStB.Port := 3050;

FbConnectionStB.Dialect := 3;

FbConnectionStB.Charset := NONE;

FbConnectionStB.ConnectionLifeTime := 0;

FbConnectionStB.ConnectionTimeout := 15;

FbConnectionStB.Pooling := True;

FbConnectionStB.PacketSize := 8192;

FbConnectionStB.ServerType := 0;

Result := FbConnectionStB.ConnectionString;

finally

FbConnectionStB.Free;

end;

end;

 

Para usar faça assim:

FBConnection1.ConnectionString := BuildConnectionString(C:\ClubeDelphi\Firebird .NET\ EMPLOYEE.FDB);

 

Note que isso é só uma demonstração de utilização, um exemplo de como é fácil usar estas funções para configurar diferentes FBConnections sem necessidade de repetição de código, existirão também diversas situações que você irá precisar usar o FbConnectionStringBuilder de outra forma.

Vamos ver agora os principais métodos do FbConnection, para que servem e como aplicá-los:

1.      CreateDatabase – Cria um novo banco de dados de acordo com a connectionstring passada.

2.      DropDatabase – Apaga um banco de dados especificado na connectionstring passada.

3.      BeginTransaction – Inicia uma transação retornando um objeto FBTransaction.

4.      ChangeDatabase – Alterna a conexão do banco de dados para outro arquivo.

5.      Close – Fecha a conexão ativa.

6.      CreateCommand – Cria um objeto FBCommand já com sua conexão apontada para o objeto FBConnection

7.      GetSchema – Serve para retornar os metadados, incluindo também objetos de sistema do banco.

8.      Open – Abre a conexão com o banco de dados.

 

Exemplos de utilização dos métodos ...

Quer ler esse conteúdo completo? Tenha acesso completo