VB - Acessando o FireBird


O FireBird nasceu quando a Borland resolver fazer do InterBase um open source. Na verdade você tem agora o Interbase como uma versão comercial e o Firebird baseado na versão 6 do Interbase como um open source.

Neste artigo vou mostrar como você pode instalar e acessar o FireBird usando o VB 6. Ao trabalho...

Você vai precisar ter instalado os seguintes programas :

  1. firebird-win32 - O próprio FireBird para a versão Windows (1.5.1) - Versão
  2. http://www.ibobjects.com/ibo_ib_sql.html - IB_SQL - uma ferrramenta para administrar o FireBird com interface gráfica
  3. http://firebird.sourceforge.net/index.php?op=files&id=odbc - O driver ODBC para o VB6.
  4. http://www.zstyle.dp.ua/eng/download.htm - o driver ODBC da Zventure que iremos usar em nossos exemplos de acesso com o VB.
  5. http://firebird.sourceforge.net/index.php?op=files&id=netprovider - O provedor .NET para o VB.NET.
  6. http://firebird.sourceforge.net/ - O site oficial contém também tutoriais , manuais e orientações.

Instalando e testando o FireBird

Instalar o FireBird no Windows não tem segredo é só clicar no pacote que você baixou no item 1 e seguir as orientações.

Acabanco a instalação vamos ver se a mesma foi feita com sucesso.

Na versão que instalamos existe o banco de dados Httplogs.gdb , vamos acessá-lo e exibir as tabelas e seus registros:

Digite o seguinte comando na janela Executar para acessar o banco de dados Httplogs.gdb usando a chave e senha padrão:

"C:\Arquivos de Programas\FireBird\Firebird_1_5\bin\isql.exe" "C:\Arquivos de Programas\FireBird\Firebird_1_5\Exemplos\Httplogs.gdb" -u sysdba -p masterkey

A seguir digite na linha de comando SQL o comando Show Tables;  
Agora digite a instrução SQL Select * from States para exibir os dados da tabela States.

O resultado obtido pode ser visto abaixo:

Vamos fazer o download de um banco de dados para testes.

Crie uma pasta chamada teste e faça o dowload do banco de dados employeed.gdb no link abaixo para esta pasta que você criou:

http://www.ettasoft.com/images/Employee.zip

Nota: aproveite e copie o banco de dados Httplogs.gdb para esta pasta pois a usaremos para os exemplos com o Visual Basic.

Após você baixar e descompactar o banco de dados para o local indicado vamos testar o acesso ao banco de dados via linha de comando. Digite o seguinte comando na janela Executar:

"C:\Arquivos de Programas\FireBird\Firebird_1_5\bin\isql.exe" "C:\Arquivos de Programas\FireBird\Firebird_1_5\Exemplos\employee.gdb" -u sysdba -p masterkey

Nota: Estou executando o comando isql.exe no diretório bin do FireBird para abrir o banco de dados employee.gdb que esta na pasta exemplos.

Após executar o comando o prompt   SQL>    irá aparecer .

Digite em seguida o comando : Show tables;

Agora digite o comando SQL : Select * from Employees; e você deverá a relação de linhas da tabela Employees , conforme figura abaixo:

para sair digite Exit;.

Acabamos de testar o acesso a banco de dados no ambiente FireBird. Como usar a linha de comando pode exigir muita digitação você pode utilizar uma ferramenta que fornece uma interface mais amigável. Estou falando do IB_SQL.

Vamos criar um banco de dados usando o IB_SQL. Inicie o aplicativo e na aba Connections na caixa de texto - DataBase - informe o nome e caminho do banco de dados que deseja criar: Ex: C:\Teste\teste.gdb e a seguir clique no ícone - Create DataBase - conforme figura abaixo:

Instalando o driver para acesso

Para instalar o Driver Zstyle basta descompactar o pacote e copiar os arquivos para a pasta \windows\system e a seguir executar o arquivo ibolereg.bat.

Para verificar se o driver foi instalado com sucesso fazemos um teste usando o driver instalado com uma conexão com o banco de dados Httplogs.gdb. (veja abaixo)

Neste ponto você já deve ter concluído as seguintes tarefas com sucesso:

Acessando o FireBird com o Visual Basic

Vamos agora acessar o FireBird usando o VB. Para isto o driver OLE DB deverá estar instalado. Você pode usar qualquer outro Driver que desejar.

Vamos criar uma conexão via ADO para acessar a tabela Employees do banco de dados Employee.gdb.

Inicie um novo projeto e no formulário padrão inclua um ListBox e um Botão de comando. No evento Click do botão de comando insira o seguinte código:

Private Sub Command1_Click()

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String

cn.ConnectionString =
"Provider=ZStyle IBOLE Provider;Data Source=c:\teste\Employee.gdb;UID=sysdba;password=masterkey"

sql = "Select * From Employees"
cn.Open
Set rs = cn.Execute(sql)

Do While Not rs.EOF
  List1.AddItem rs(0) & vbTab & rs(1) & vbTab & rs(2)
  rs.MoveNext
Loop

rs.Close
cn.Close

End Sub

Note que eu estou usando o usuário sysdba e a senha masterkey definidas como padrão para estes banco de dados , mas você pode alterar a seu critério.

O resultado será a exibição dos campos : EmployeeID , Last_Name e First_Name representados por rs(0), rs(1) e rs(2) da tabela Employees :

Incluindo dados no FireBird

Vamos agora incluir dados na tabela State . Esta tabela possui os campos STATE_CODE e STATE_NAME.

Inicie um novo projeto no VB e no formulário inclua um botão de comando e um ListBox. Vamos carregar o ListBox com os dados que desejamos incluir na tabela e colocar no evento Click do botão de comando o código abaixo para incluir os dados :

O código para carregar o ListBox com os dados que vamos incluir na tabela é colocado no evento Load do formulário:

Private Sub Form_Load()

List1.AddItem "SP" & vbTab & "São Paulo"
List1.AddItem "RJ" & vbTab & "Rio de Janeiro"
List1.AddItem "MG" & vbTab & "Minas Gerais"
List1.AddItem "DF" & vbTab & "Brasilia"

End Sub

Abaixo o código que inclui os dados na tabela State; Estou usando a instrução SQL INSERT INTO para incluir os valos na tabela

Private Sub Command2_Click()

Dim cn As New ADODB.Connection
Dim sql As String
Dim i, rowCount As Integer
Dim linha As String
Dim array

cn.ConnectionString =
"Provider=ZStyle IBOLE Provider;Data Source=c:\teste\Httplogs.gdb;UID=sysdba;password=masterkey"                     
cn.Open

'Inclui itens no banco de dados
rowCount = List1.ListCount 'obtem o numero de linhas no listbox

Do Until i = rowCount

  linha = List1.List(i)
  array = Split(linha, vbTab)  

  sql = "Insert Into States (State_Code, State_Name) Values" & "('" & UCase(array(0)) & "','" & array(1) & "')"
  i = i + 1
  cn.Execute sql
Loop

cn.Close
List1.Clear

End Sub

Abaixo o formulário com os dados carregados no ListBox1 e os dados sendo exibidos após a inclusão no ListBox2:

O código para exibir os dados é semelhante ao usado no primeiro exemplo:

Private Sub Command3_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String

cn.ConnectionString =
"Provider=ZStyle IBOLE Provider;Data Source=c:\teste\Httplogs.gdb;UID=sysdba;password=masterkey"
sql = "Select * From States"

cn.Open
Set rs = cn.Execute(sql)

Do While Not rs.EOF
   List2.AddItem rs(0) & vbTab & rs(1)
   rs.MoveNext
Loop

rs.Close
cn.Close
End Sub

Editando dados no Firebird com o VB

Abaixo temos o código que usa uma instrução SQL UPDATE para atualizar os dados da tabela State

Private Sub Command1_Click()

Dim cn1 As New ADODB.Connection
Dim sql As String

If txtSigla = "" Then
   MsgBox "Informe o codigo do Estado para Alterar ! "
   txtSigla.SetFocus
   Exit Sub
End If

If txtNome.text = "" Then
   MsgBox "Informe um valor para este campo !"
   txtNome.SetFocus
   Exit Sub
End If

cn1.ConnectionString = "
Provider=ZStyle IBOLE Provider;Data Source=c:\teste\Httplogs.gdb;UID=sysdba;password=masterkey"
cn1.Open

sql =
"Update States Set State_Name='" & txtNome & "'" & " Where State_Code='" & UCase(txtSigla) & "'"
cn1.Execute sql
cn1.Close

txtSigla.Text = ""
txtNome.Text = ""

End Sub

Abaixo o resultado da alteração para alguns dados :

Para excluir dados basta você usar o mesmo esquema de conexão alterando somente a instrução SQL; no caso a instrução usada deverá ser um DELETE FROM com a cláusula WHERE. Ex: DELETE FROM State Where State_Code = 'SP' (exclui da tabela State todos os registros com sigla (State_Code) igula a SP)

Se você gostou do FireBird e pretente usá-lo como seu banco de dados deverá se aprofundar estudando a documentação a respeito.

Aguarde em breve mais artigos sobre o FireBird com o Visual Basic.

Pegue os códigos dos exemplos aqui : fb_vb.zip


José Carlos Macoratti