Showing posts with label Jet Database Engine. Show all posts
Showing posts with label Jet Database Engine. Show all posts

Monday, February 14, 2011

Solution: The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

Today, after I uploaded one of my ETL data integration components (written in C#) from local 32-bit Windows System to our server environment which is running on Windows 2008 R2 64-bit system, my application blew up with the following error message:

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

The reason for this error is, I used Jet database engine in my ETL component to read Excel file, but the Jet library was not designed for 64-bit system. The community has been suggesting to compile the code to target to x86 platform in order to cope with this issue, which is something I was reluctant to do for the obvious reasons. It's also the primary motivation that I am blogging about this issue.

Further Google search indicates that Microsoft has released a 64-bit compatible Jet database engine last year. The following is the procedure that you may use to fix this issue if you have:

  1. Download Microsoft Access Database Engine 2010 Redistributable (of course you'll need to choose the right bit for your server), and install it on your server

  2. Change your connection string in your code or configuration file from
    Provider=Microsoft.Jet.OLEDB.4.0;
    to
    Provider=Microsoft.ACE.OLEDB.12.0;
UPDATE: Microsoft has released a service pack for the Database Engine which is available at  http://www.microsoft.com/en-us/download/details.aspx?id=26605.

After I have done the above, my ETL component worked fine on the 64-bit system.

Hope this helps if you ever run into this issue.