VB.NET 2005 - Conexão com o FireBird Embarcado (Embedded)


Você já pode efetuar a conexão com o FireBird usando o VB 2005 usando o provedor para a plataforma .NET 2.0. Este artigo mostra como fazer isto.

Você deve ter instalados os seguintes recursos:

Vejam em meu artigo VB.NET - Acessando o FireBird. como obter e instalar o FireBird 1.5 e como criar um banco de dados usando o IBExpert. Veja também os seguintes artigos envolvendo o FireBird:

O item mais importante para poder acessar o FireBird com o VB 2005 e instalar o provedor FireBird para a plataforma .NET 2.0 - FirebirdClient (ADO.NET Data Provider) : FirebirdClient 2.0.1 for .NET Framework 2.0 [stable] (600 kB)

Após ter todos os componentes instalados vamos incluir os componentes na ToolBox do VB 2005.

1- Abra o VB 2005 e no menu Tools , selecione External Tools

2- Na janela - Choose ToolBox Items - selecione os componentes: FbCommand, FbCommandBuilder, FbConnection e FbAdapter conforme a figura abaixo:

A seguir você já pode abrir a ToolBox e visualizar os componentes instalados na guia General:

Agora abra o IBExpert e crie um banco de dados chamado MACORATI.FDB e a seguir a tabela CADASTRO conforme a estrutura mostrada a seguir no IBExpert:

A seguir crie um novo projeto no VB 2005 chamado conexaoFB e inclua os controles DataGridView e Button no formulário padrão conforme abaixo:

A primeira coisa a fazer é declarar o namespace usado no projeto:

Imports FirebirdSql.Data.FirebirdClient

A próxima etapa e declarar as variáveis para os objetos DataAdapter, DataSet e Connection para o FireBird:

Dim conexaoFB As FbConnection
Dim
da As FbDataAdapter
Dim
ds As New DataSet

No evento Load do formulário vou criar um novo objeto conexão com o FireBird. Estou usando o usuário e a senha padrão do Firebird e o banco de dados que eu criei na pasta d:\teste:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

conexaoFB = New FbConnection("Server=localhost;User=SYSDBA;Password=masterkey;Database=D:\teste\MACORATI.FDB")

End Sub

Para concluir o código associado ao evento Click do botão de comando onde a conexão é aberta e um objeto DataAdpater é criado.

A seguir preenchemos o dataset com os dados da tabela CADASTRO e exibimos no datagridview:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


conexaoFB.Open()

da = New FbDataAdapter("Select * from CADASTRO", conexaoFB)

Try

    da.Fill(ds, "Cadastro")

     dgvFB.DataSource = ds.Tables(0)

Catch ex As Exception

    MsgBox(ex.Message)

End Try

End Sub

Executando o projeto teremos:

Simples , fácil e prático. Você tem a sua disposição uma ferramenta RAD excelente e um banco de dados sensacional totalmente grátis....

Agora vamos a novidade: Você sabia que o Firebird dispõe de uma versão embedded (embarcada) ?

O que significa versão embarcada ?

Bem , uma versão embarcada é aquela que você pode empacotar junto com sua aplicação e distribuir sem necessidade posterior de ter que instalar a base de dados. É isso mesmo, o FireBird possui uma versão na qual basta você incluir o arquivo fbembed.dll junto com sua aplicação, distribuir e pronto; o banco de dados já vai junto exatamente como você faz com o Access, com a vantagem de que o FireBird é muito mais do que um servidor de arquivos.

Veja abaixo uma comparação entre o FireBird e o Access 2000 (Microsoft Jet 4.0) copiada e colada do site:
http://www.dotnetfirebird.org/blog/2005/01/firebird-and-microsoft-jet-feature.html

Firebird and Microsoft Jet Feature Comparison

Incomplete and biased comparison of Firebird 1.5 and Microsoft Jet 4.0:
Feature Firebird 1.5 Microsoft Jet 4.0
Deployment and Administration
Single database file
Embeddable Details...
XCOPY data deployment Details...
Hot backup (24x7 availability is possible)
Can run on Windows 98
Scalability
Database file size limit Unlimited* 2 GB
Multiple concurrent users It doesn't scale
Engine Features
Transacões
Views
Autoincrement fields
Stored procedures and triggers
BLOB fields
Unicode support
National character sets support (including sorting)
ADO.NET Provider (OLEDB)
Licensing
Open-source license Details...
License allows use in commercial applications Details...

Nota:

O banco de dados Firebird Embedded Server é um cliente com um servidor de banco de dados completo, carregado dentro de uma biblioteca dinâmica (fbembed.dll). Este provê os mesmos recursos que a distribuição SuperServer e exporta as entradas padrão da API do Firebird.(www.firebird.com.br)

A seguir alguns detalhes desta versão :

- Acesso ao Banco de Dados: Somente "acesso local" é permitido. O servidor não oferece suporte para protocolos remotos, o que implica que acessos via "localhost" ou "127.0.0.1" não irão funcionar.

- Autenticação e Segurança: O banco de dados de segurança (security.fbd) não é usado nesta distribuição como também não é requerido para funcionar. Qualquer usuário está habilitado para acessar qualquer banco de dados armazenado desta maneira. Desde que o cliente e o servidor rodem no mesmo local, a segurança passa a ser somente uma questão de acesso físico. Privilégios em instruções SQL ainda são verificadas, como nas outras distribuições do servidor.

- Compatibilidade: Podem ser executadas qualquer número de aplicações com o servidor sem nenhum conflito. Mesmo havendo servidores IB/FB em execução não haverá problemas.

- Deve-se tomar a precaução de não se acessar a mesma base de dados por múltiplos servidores, pois eles seguem a arquitetura SuperServer que mantêm acesso exclusivo aos bancos de dados abertos.

Nota: Para o ambiente Windows você pode pegar a versão embedded aqui: Embedded Firebird for Windows 1.5.3 [stable] (1.4 MB)

Vou aproveitar o exemplo acima para mostrar como você pode usar o FireBird Embedded com o VB 2005. A única mudança será na string de conexão e a utilização da DLL do FireBird embedded.(fbembed.dll)

Veja abaixo o projeto mostrando o código com as alterações feitas :

Você deve efetuar as seguintes alterações:

1- A referência ao provedor FireBird ADO.NET 2.0 deve ser incluída da mesma forma que no primeiro exemplo;

2- Você deve incluir o arquivo fbembedd.dll na pasta \bin\Debug da aplicação;

3- A string de conexão tem que ser alterada para:

cn = New FbConnection("ServerType=1;User=SYSDBA;Password=masterkey;Database=D:\teste\MACORATI.FDB")

onde a declaração ServerType=1 indica que estamos usando o FireBird embarcado.

Nota: (www.firebird.com.br)

Uma aplicação para ser "embarcada" precisa ter a seguintes características :

-  O path do banco de dados deverá ser identificado no componente de acesso como partindo-se do diretório onde se encontra seu aplicativo, por exemplo,

·   O protocolo de comunicação deverá ser "local" e nunca remota :

O resto é igual, agora basta rodar o projeto e obter o mesmo resultado que mostramos no exemplo do artigo.

Este artigo é apenas para você  'molhar os pés...' , no futuro iremos nos aprofundar na utilização do FireBird com VB 2005. Aguarde...

Pegue o projeto completo aqui: conexaoFB.zip

Até o próximo artigo .NET 

referências:

1- http://www.firebase.com.br
2- http://www.firebirdsql.org/
3- http://www.comunidade-firebird.org/cflp/html_docs/001_FacSheet/Firebird%201_5%20Factsheet.htm

4- http://www.dotnetfirebird.org
5- http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnadonet/html/genericdacode.asp

Downloads:

FirebirdClient (ADO.NET Data Provider)

Firebird client library, disponível para  .NET Framework 2.0, .NET Compact Framework 2.0 e Mono 1.1.18+.


José Carlos Macoratti