32bit pyodbc for 32bit python (3.6) works with microsoft's 64 bit odbc driver. Why? -
what can observe:
- i using windows 7 64bit code (establish odbc connection sql server on network, simple reading operations only) written in python 3.6.2 32bit
- i pip installed pyodbc, assume 32bit well.
- i downloaded , installed 64bit "microsoft® odbc driver 13.1 sql server®" microsoft website.
- my python code connects other computers on network, run server2003 32bit , either sql server 2005(32bit) or sql2008(32bit).
the setup works.
moreover: cursory test shows that, above setup can connect computer microsoft server2008(64bit) running sql2012(64bit) configuration under "sql server network connection (32bit)" being empty (meaing, 32bit dll missing), while default 64 bit network connection configuration contains usual config options ip adress , listening port info.
my own explanation:
[1] client , server's os , odbc interfaces can of 32/64 bit combination, protocol travels thru network between computer , sql computer identical.
[2] 32 bit python+pyodbc can talk microsoft's 64bit odbc driver, because... 32 bit python knows how use 64 bit dll...?
a 32bit application can not invoke 64bit dll, python 32bit can not talk 64bit driver sure.
msodbc driver sql server in essence dll file: msodbcsql13.dll
i found out (which not mentioned microsoft) "odbc sql server 13.1 x64" install 64bit msodbcsql13.dll in system32 , 32bit msodbcsql13.dll in syswow64 ( 32bit version of "system32" on 64bit windows system)
i can not network protocol between 32bit client talking 64bit sql server same 64bit client talking 64bit sql server. but, believe that, once request put on network client server, 32bit or 64bit doesn't matter anymore. please comment on this
Comments
Post a Comment