good chemistry is complicated, and a little bit messy -LW |
|
PerlMonks |
Re: DBI Module, 32-bit Perl on 64-bit Windows 7: ODBC Connection confusionby mvaline (Friar) |
on Feb 08, 2011 at 04:34 UTC ( [id://886882]=note: print w/replies, xml ) | Need Help?? |
WoW64 is an emulation layer that allows 32-bit Windows applications to run on 64-bit versions of Windows. The %WINDIR%\WoW64 directory contains 32-bit versions of the binaries located in %WINDIR%\System32 that interact with the emulation layer. Confusingly, the System32 directory on 64-bit Windows contains 64-bit binaries. Most of the information about ODBC DSNs and drivers is stored in the Registry. The WoW64 Registry Redirector component provides separate logical views of the Windows registry. In many cases, 32-bit and 64-bit applications read and write to what amounts to separate registries. The two copies of ODBCAD32.EXE write DSNs to the 64-bit and 32-bit logical registries. A subset of registry keys are kept in sync starting with the Windows 7 through something called registry reflection, and a few programs (mostly from Microsoft) are capable of looking in both places for various things. However, as you discovered, 32-bit ODBC drivers and DSNs need to be managed with %WINDIR%\SysWow64\ODBCAD32.EXE and 64-bit with %WINDIR%\System32\ODBCAD32.EXE. Update: I'm running the 64-bit version of ActiveState Perl 5.12.1 Build 1201. When I iterate through DBI->available_drivers(), I only see 64-bit DSNs for SQL Server. I'm surprised by your comment that you were only able to see your DSN after registering it with the 32-bit version of ODBCAD32.EXE from the SysWow64 directory. Has anyone else had the same experience? Could there by a 64-bit version of DBI installed under 32-bit Perl?
In Section
Seekers of Perl Wisdom
|
|