Just sharing some of my inconsequential lunch conversations with you... RSS  

Monday, July 05, 2010

32-bit ODBC drivers on a 64-bit machine

Today I had the need to install a 32 bit ODBC driver on my x64 Windows 7. After installing the driver, I couldn’t find it on the 32-bit ODBC administrator.

This tool only configures 32-bit native calls, for 32/64-bit environment we have to set it on %systemdrive%\Windows\System32\Odbcad32.exe. Here’s Microsoft’s support link, and here’s how to debug it on SSIS:

image

5 comments:

Ted Thibodeau Jr said...

You pointed to the right Microsoft KB article, but it seems that you continued the confusion in your post. You referred to the 64-bit administrator's location, when you were talking about using the 32-bit administrator.

The 32-bit ODBC Administrator, which must be used to configure DSNs for 32-bit drivers, is at %systemdrive%\Windows\SysWoW64\odbcad32.exe.

The 64-bit ODBC Administrator, which must be used to configure DSNs for 64-bit drivers, is at %systemdrive%\System32\odbcad32.exe.

These locations are extremely counterintuitive.

Also, as noted in the MSKB article you linked, there is potential for confusion between 32-bit and 64-bit User DSNs, as both 32-bit and 64-bit tools will see both 32-bit and 64-bit DSNs -- even though 32-bit tools can only use 32-bit DSNs, and 64-bit tools can only use 64-bit DSNs. For this reason, my employer and I both recommend using only System DSNs in 64-bit environments which use 32-bit ODBC drivers for *any* reason.

Mário Romano said...

Hi,

I understand what you're saying, but I'm not not sure I agree entirely with you. As I see it, WOW is the 32 to 64 virtualization subsystem. As stated on the referred link:

"If you build and then run an application as a 32-bit application on a 64-bit operating system, you must create the ODBC data source by using the ODBC Administrator tool in %windir%\SysWOW64\odbcad32.exe"

On the other hand, Microsoft did mess up and it's incredibly difficult to understand their options.

Bottom-line is: if you want to use 32 bit drivers on a 64 bit machine, SysWow64 is the place to configure it. Do you agree?

Thanks for your comment

Ted Thibodeau Jr said...

Yes, if you want to use 32-bit drivers in 64-bit Windows, SysWow64 holds the odbcad32.exe for you.

Ted Thibodeau Jr said...

Some administrative cleanup of those Chinese comments would be worthwhile. They're just link-spam.

Mário Romano said...

Thanks for the encouragement on the comments housekeeping. I must confess that in this case my believe on never deleting comments was overzealous.

Development Catharsis :: Copyright 2006 Mário Romano