Instalando e usando o ODBC .Net Data Provider

 

O ODBC .NET Data provider permite o acesso a banco de dados ODBC através de um driver ODBC nativo da mesma forma que os provedores nativos OLE DB. A grande vantagem em usar os provedores ADO.NET é que todos eles definem a mesma hierarquia de classes , e , por isso a única coisa que você tem que alterar são as classes e a string de conexão.

 

Diferentemente dos provedores  - SQL e OleDb - o provedor ODBC precisa ser instalado a parte do .NET Framework , então a primeira coisa a fazer é pegar o provedor no site da Micro$oft - (http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/MSDN-FILES/027/001/668/msdncompositedoc.xml ). 

 

Após instalar o OBDC .NET temos que customizar a barra de ferramentas (toolbox) para incluir os componentes de dados ODBC. Vamos fazer isto:

Figura 1.0 Figura 2.0

Agora para poder usar o ODBC no seu projeto VB.NET você precisa incluir uma referência a Microsoft.Data.Obdc.dll. Estando no seu projeto , em - Solution Explorer - e clique com o botão direito do mouse e selecione a opção - Add Reference... (veja figura ao lado)

 

Na janela - Add Reference - clique no botão - Browse.

 

O arquivo Microsoft.Data.Obdc.dll esta na pasta :

\Arquivos de Programas\Microsoft.NET\Obdc.NET

 

Selecione o componente e clique no botão Open para incluir uma referência

 

Após a inclusão as referências irão aparecer na janela - Add Reference - e no seu projeto , na janela - Solution Explorer ; conforme abaixo

 

Pronto , agora basta inserir o código que trata as informações da fonte de dados e fazer a referência no código da classe do OBDC:

 

Imports Microsoft.Data.Obdc

 

As classes do provedor ODBC.NET são :

 

OdbcCommand  Representam o comando SQL ou Procedimento armazenado a ser executado
OdbcCommandBuilder  Gera automaticamente comandos  select , insert , update e delete
OdbcConnection  Representa uma conexão
OdbcDataAdapter  Representa um Data adapter
OdbcDataReader  Representa um data reader
OdbcError  Representa os erros e avisos
OdbcErrorCollection  Representa uma coleção de erros e avisos
OdbcException  Representa a classe de exceção ODBC
OdbcParameter  Representa um parâmetro ODBC
OdbcTransaction  Representa uma transação

 

A string de conexão para OdbcConnection contém o driver para a fonte de dados (data source ) e o caminho para a fonte de dados com os parâmetros opcionais para senha ( Password) e usuario (User). Vejamos as strings de conexão para alguns casos:

 

"Driver={Microsoft ODBC for Oracle};Server=ORACLE8i7;UID=obdcuser;PWD=123456"  Oracle
"Driver={SQL Server};SERVER=MyServer;UID=sa;Trusted_connection=true;DATABASE=northwind;"  SQL Server
"Driver={Microsoft Access Driver(*.mdb)};DQB=c:\SeuBancodeDados.mdb"  Access
"Driver={Microsoft Excel Driver(*.xls)};DQB=c:\teste\planilha.xls"  Excel
"Driver={Microsoft Text Driver(*.txt; *.csv)};DQB=c:\teste"  Arquivos Textos

 

Obs: Você pode usar um DSN  - ODBC Data Source - como uma string de conexão através do Administrador ODBC.

Ex:   conexão = New OdbcConnection("DSN=DADOS;UID=Macoratti;pwd=Teste")

 

Para encerra vamos mostrar projeto  exemplo acessando uma base de dados Access. Vou acessar a tabela clientes do banco de dados clientes.mdb ( um banco de dados que eu criei) e exibir o nome dos clientes:

1 - Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)

  1. Project Types : Visual Basic Projects
  2. Templates : Windows Application
  3. Name : ODBCTeste
  4. Location : c:\vbnet\ODBCTeste

2 - No formulário padrão form1.vb inclua uma controle ListBox e um botão de comando - Button1.

3- Insira o seguinte código no evento Click do botão de comando - Button1 :

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

 

Dim dr As OdbcDataReader

Dim sql As String = "Select * from Clientes"

Dim conexao As OdbcConnection

 

conexao = New OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Teste\Clientes.mdb;UID=;PWD=")

conexao.Open()

 

Dim cmd As OdbcCommand = New OdbcCommand(sql, conexao)

dr = cmd.ExecuteReader()

While (dr.Read())

   ListBox1.Items.Add(dr("Nome"))

End While

 

dr.Close()

conexao.Close()

conexao = Nothing

End Sub

 

Ao executar o projeto e clicar no botão de comando vamos obter:

 

 

Obs: O acesso a dados via ODBC é mais lento do que usar um provedor nativo Ole DB. Somente o utilize se não tiver alternativa.

 

referências:

HOW TO: Use the ODBC .NET Managed Provider in Visual Basic .NET and Connection Strings


José Carlos Macoratti