0

Alright, this is my first time working with this so forgive me if I'm a little confusing or vague.

I have a server with Windows Server 2008 Standard without Hyper-v (6.0, Build 6002). I'm running a small website off this server and using a Microsoft Access database to store some information coming in through the website. I'm sure the PHP I have written to open the ODBC connection is correct as it has worked for me when I created this website in a testing environment on a laptop.

My current issue now is that it seems like I have two different odbcad32.exe's, and one doesn't appear to have a driver for a .accdb file, and only a .mdb file. The other has a driver for both.

The first one I speak of has a driver titled 'Driver do Microsoft Access (.mdb)', the second one has a driver titled 'Microsoft Access Driver (.mdb, .accdb)'. I access the first odbcad32.exe by going to C:\Windows\SysWOW64\odbcad32.exe, and then the one that seems to have the driver I need I go to Control Panel->Administrative Tools->Data Sources(ODBC) and simply create a new connection in the System DNS tab.

Whenever I make changes to the one that I access through the Control Panel, I see no changes, however if I use the odbcad32.exe file in SysWOW64 I do get some changes in the errors that come back to me. The main difference I noticed is that when I set up an ODBC connection with the Control Panel method it said it simply couldn't find the ODBC connection, but when I made a .mdb connection in the SysWOW64 one (and pointed it to a .accdb file) it says

Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt.

Which makes it seem like it is this odbcad32.exe version in SySWOW64 that is being recognized as the 'correct' one. Is there any way to fix this?

I've tried to be as thorough as possible but if I've been confusing or left anything out let me know.

Hoser
  • 125
  • 5

1 Answers1

1

The executable in system32 is the 64 bit version while the copy in syswow64 is the 64 bit version. Each one works with different sets of drivers based on the architecture of the executable you're running.

The version you want to run depends on the architecture of the executables that need to load the drivers.

Most often, PHP runs as a 32 bit process for CGIs, but you'll need to double check your environment and make sure the appropriate drivers are installed.

afrazier
  • 700
  • 4
  • 7
  • Well it appears the syswow64 is the one actually being run. I'm assuming there is a way to update that .exe with the appropriate drivers? – Hoser Oct 16 '12 at 23:04
  • Install the 32 bit Microsoft Access Database Engine Redistributable and you should be fine. – lsmooth Oct 16 '12 at 23:28