locked
ACE Driver 64 bit RRS feed

  • Question

  • User-1534519444 posted

    Hello,

    We have installed the 64 bit version of the driver on the server but it said:

    The 'Microsoft.ACE.OLEDB.14.0' provider is not registered on the local machine.

    So I changed to "Microsoft.Jet.OLEDB.12.0" in my connection string but then i got this error message:

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

    So when i change to version 12 it starts complaining about version 4.

    Anyone know why?

    Thanks,

    Michael

    Wednesday, September 8, 2010 6:03 AM

Answers

  • User-1199946673 posted

    But if this connection string is read only, then how can a AccessDataSource be used in a 64 bit system at all?
     

    I don't think it can, although  MSDN  says it can

    Only solution i found was to use the SqlDataSource instead.

    Like I said, the AccessDatasource is in fact a SQLDatasource. That's why I always use the SQLDatasource, so I can use the connection string in web.config and you can use password protected databases (for what it is worth). I don't see any advantage in using a AccessDataSource over an SQLDataSource....

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, September 15, 2010 11:27 AM

All replies

  • User-821857111 posted

    So I changed to "Microsoft.Jet.OLEDB.12.0" in my connection string but then i got this error message:

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

    You changed the provider name as well as the version number.

    Microsoft.ACE.OLEDB.12.0


    Wednesday, September 8, 2010 8:08 AM
  • User-1534519444 posted

    Sorry, I copied the wrong text in my question. What i ment was that i changed to "Microsoft.ACE.OLEDB.12.0" and then i got the error:

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

    When i try "Microsoft.ACE.OLEDB.14.0" i get this error:

    "The 'Microsoft.ACE.OLEDB.14.0' provider is not registered on the local machine."

    So when i use "Microsoft.ACE.OLEDB.12.0" it complains about the Jet version of the driver and if i use "Microsoft.ACE.OLEDB.14.0" it complains about the ACE version. This makes no sence to me.

    Microsoft.ACE.OLEDB.12.0
    Wednesday, September 8, 2010 2:26 PM
  • User-1534519444 posted

    I found the cause and the solution to this and though i should share it if someone else has this problem.

    The error message came from the AccessDataSource i had in my aspx-file. For some reason it didnt go for the 64 bit driver even that it was hosted on a 64 bit server and was running in 64 bit mode.

    And since i can't specify a connection string on an AccessDataSource i changed to SqlDataSource, but still using the access database.

    Example of solution:

    <asp:SqlDataSource ID="ds" runat="server" 
    		ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/cms.mdb"
    		ProviderName="System.Data.OleDb"
    		SelectCommand="SELECT...">
    </asp:SqlDataSource>




    Wednesday, September 15, 2010 9:25 AM
  • User-1199946673 posted

    The error message came from the AccessDataSource i had in my aspx-file. For some reason it didnt go for the 64 bit driver even that it was hosted on a 64 bit server and was running in 64 bit mode.
     

    For some reason? The reason is very simple. The AccessDatasource is inherited form the SQL datasource. The difference is the connectionstring property, which is replaced with the datafile property. And the datafile property ALWAYS creates a connectionstring with the Jet OledDB 4.0 driver.

    Wednesday, September 15, 2010 10:00 AM
  • User-1534519444 posted

    Ok that makes sence. But if this connection string is read only, then how can a AccessDataSource be used in a 64 bit system at all? Only solution i found was to use the SqlDataSource instead.

    Wednesday, September 15, 2010 10:51 AM
  • User-1199946673 posted

    But if this connection string is read only, then how can a AccessDataSource be used in a 64 bit system at all?
     

    I don't think it can, although  MSDN  says it can

    Only solution i found was to use the SqlDataSource instead.

    Like I said, the AccessDatasource is in fact a SQLDatasource. That's why I always use the SQLDatasource, so I can use the connection string in web.config and you can use password protected databases (for what it is worth). I don't see any advantage in using a AccessDataSource over an SQLDataSource....

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, September 15, 2010 11:27 AM