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:
Abra a caixa de ferramentas e selecione a guia Data
A seguir clique com o botão direito do mouse e no menu suspenso selecione a opção - Customize ToolBox . (Figura 1.0)
|
|
Figura 1.0 | Figura 2.0 |
A seguir na janela - Customize Toobox - selecione a guia - .NET Framework Components - e procure pelo Namespace - Microsoft.Data.Obdc
Marque a caixa de seleção para estes namespaces e a seguir clique em OK. (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.)
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 = NothingEnd 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:
José Carlos Macoratti