none
32 and 64 bit OLEDB Dataproviders can't co-exist on same computer? RRS feed

  • Question

  • Hi, This post http://blogs.msdn.com/sqlblog/archive/2009/12/29/how-to-connect-to-file-based-data-sources-microsoft-access-microsoft-excel-and-text-files-from-a-64-bit-application.aspx?CommentPosted=true#commentmessage gives the good news that there will soon be a 64bit data provider which will allow us to develop 64 bit .NET programs that can read and write MS Access files. However, my concern is the statement that 32 and 64 bit versions of the 2010 Office System Driver Connectivity Components cannot be installed on the same computer. Does this mean:

    1 We’ll have to develop 32 and 64 bit versions of our programs on two separate computers?

    2 The install systems for our programs will have to check to see if a 2010 Office System Driver is already installed on the user’s computer and then decide whether to install the 32bit or 64 bit versions of our programs?

    3 If another less well behaved install program is run after our programs have been installed could it overwrite the Office 2010 System Driver with the other 32/64 bit version and cause our programs to fail?

    Any thoughts, comments or suggestions would be very much appreciated.

    Many thanks

    Roger

    Friday, February 26, 2010 9:41 AM

Answers

  • Someone had mentioned to me that they were unable to install the 64-bit ACE Provider because Office 2007 was installed, although I have verified this. I can check to see if it's possible to have both the 32-bit and 64-bit versions installed.

    I don't think there is anything you could do about a rogue installation program breaking the database engine install. This was also true of MDAC and the Jet OLEDB installations.
    Paul ~~~~ Microsoft MVP (Visual Basic)
    Friday, February 26, 2010 1:30 PM
  • I was able to verify that you cannot install both versions on 64-bit Windows. You would probably have to run a VM, such as Virtual PC or in the case of Windows 7 Pro or higher you can use Windows XP Mode, if you want to develop both 32 and 64-bit versions on the same machine.

    But let me add, unless you're writing 32-bit specific code for the 32-bit version, it may not matter since the compile platform option is Any CPU by default. This means that the same assembly will run 32-bit on a 32-bit OS and 64-bit on a 64-bit OS. You just need to make certain that the Microsoft Database Engine is installed on the target machine.
    Paul ~~~~ Microsoft MVP (Visual Basic)
    Saturday, February 27, 2010 1:59 PM

All replies

  • Someone had mentioned to me that they were unable to install the 64-bit ACE Provider because Office 2007 was installed, although I have verified this. I can check to see if it's possible to have both the 32-bit and 64-bit versions installed.

    I don't think there is anything you could do about a rogue installation program breaking the database engine install. This was also true of MDAC and the Jet OLEDB installations.
    Paul ~~~~ Microsoft MVP (Visual Basic)
    Friday, February 26, 2010 1:30 PM
  • Hi Paul, Thanks for that. If you are able to check whether the new 32 and 64 bit OLEDB ACE dataproviders can both be installed on the same computer that would be really helpful.
    Best regards
    Roger
    Friday, February 26, 2010 4:28 PM
  • I was able to verify that you cannot install both versions on 64-bit Windows. You would probably have to run a VM, such as Virtual PC or in the case of Windows 7 Pro or higher you can use Windows XP Mode, if you want to develop both 32 and 64-bit versions on the same machine.

    But let me add, unless you're writing 32-bit specific code for the 32-bit version, it may not matter since the compile platform option is Any CPU by default. This means that the same assembly will run 32-bit on a 32-bit OS and 64-bit on a 64-bit OS. You just need to make certain that the Microsoft Database Engine is installed on the target machine.
    Paul ~~~~ Microsoft MVP (Visual Basic)
    Saturday, February 27, 2010 1:59 PM
  • Hi Paul,

    Many thanks. I think I'll get a VM or dual boot machine running 32 and 64 bit versions of Windows 7 to do some testing but I'm hoping that I can, as you suggest, simply set the compile option to "Any CPU". Also I hoping it shouldn't be too difficult to ensure the install program chooses the right version of the Database Engine to install on the target machine.

    Best regards
    Roger
    Tuesday, March 9, 2010 10:51 AM
  • Hello Roger

    FYI, I am running 64-bit Windows 7 VM without any MS Office full product installed. But do have both 32-bit and 64-bit Access drivers installed.

    I am not shure how the 32-bit drivers got here :-) but it might be one of 2 actions.

    1a) Might have installed 32-bit Acces 2007 runtime some time before

    1b) Run "AccessDatabaseEngine.exe /q" in admin-mode console

    Anyway, my registry looks like

    HKLM\Software\Wow6432Node\ODBC\ODBCINST.INI\Microsoft Access Driver (*.mdb, *.accdb)
         Driver     ->  ...\OFFIC12\ACEODBC.DLL
         DriverODBCVer  = 02.50

    Or MANUALLY find and run ODBC administrator for 32-bit drivers (%windir%\SysWoW64\odbcad32.exe)
        Tab = Drivers >>  Line =  Microsoft Access Driver  (.msb, .accdb)  >> column  Version  = 12.00.6423.1000   

     

    2) After all, I ran "AccessDatabaseEngine_x64.exe" without errors.

    The registry tells me

    HKLM\Software\ODBC\ODBCINST.INI\Microsoft Access Driver (*.mdb, *.accdb)
         Driver     ->  ...\OFFIC14\ACEODBC.DLL
         DriverODBCVer  = 02.50

    Or run default ODBC administrator for 64-bit drivers (throught Control Panel >> Administrative Tools >> ODBC) , (%windir%\system32\odbcad32.exe)
            Tab = Drivers >>  Line =  Microsoft Access Driver  (.msb, .accdb)  >> column  Version  = 14.00.4780.1000

    (Do not be confused by 32/64 naming of dirnames  :-) )

     

    2010 Access engine installers available from

    http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en


    Wednesday, July 14, 2010 9:24 AM