terça-feira, 17 de janeiro de 2012

Obtendo o driver de conexão do NHibernate ao Access 2010


Para o acesso ao Microsoft Access 2010 utilizando o nhibernate utiliza-se o driver NHibernate.JetDriver.

O código fonte deste driver está disponível em  https://nhcontrib.svn.sourceforge.net/svnroot/nhcontrib/trunk/src/NHibernate.JetDriver e pode ser baixado utilizando o Tortoise SVN.
Para criar a DLL NHibernate.JetDriver é necessário compilar o projeto. Após compilado, a DLL poderá ser encontrada em ...\src\NHibernate.JetDriver\bin\Debug
Antes de compilar a DLL, alguns fatos devem ser levados em conta.
1.    O NHibernate.JetDriver.dll utiliza funcionalidades de NHibernate.dll. Para que não haja conflito de versões, é importante que antes de compilar o driver, referencie-se a NHibernate.dll da mesma versão que é utilizada no projeto que você está desenvolvendo. A instalação obteve sucesso utilizando-se a versão 2.1.2.4000 do NHibernate. Na data dos testes, não foi possível compilar o driver utilizando a versão 3.0.xxx do NHibernate pois o NHibernate.JetDriver utilizava funcionalidade não mais existente nesta versão do NHibernate.
2.    Após compilado o projeto NHibernate.JetDriver, basta referenciar a DLL NHibernate.JetDriver.dll em seu projeto. Referenciar também:
a.    Antlr3.Runtime.dll
b.    Iesi.Collections.dll
c.    Log4net.dll
d.    NHibernate.dll
3.    Estas DLLs estão disponíveis na versão 2.1.2.4000 do hibernate.

FAQ
1.    “Invalid index 0 for this OleDbParameterCollection with Count=0.”
Suspeita-se que este problema aconteça por causa de alguma versão velha do driver JetDriver. Para resolvê-lo, recomenda-se recompilar o driver seguindo os passos indicados em Obtendo o driver de conexão do NHibernate ao Access 2010.

Referencias Utilizadas:
http://dixond.blogspot.com/2010/08/nhibernate-and-ms-access-its-simple-but.html
Versão 2.1.2 do NHibernate:
http://ufpr.dl.sourceforge.net/project/nhibernate/NHibernate/2.1.2GA/NHibernate-2.1.2.GA-bin.zip

Nenhum comentário:

Postar um comentário