繁体   English   中英

64位Python可以连接32位MS访问驱动程序吗?

[英]Possible for 64bit Python to connect with 32bit MS access driver?

如何在python 64bit中使用32位MS访问驱动程序进行odbc连接? 可以通过改变pypyodbc中的环境句柄或odbc常量,或创建位转换文件来完成吗?
另一个想法(不确定是否可能):有没有办法在代码执行期间切换到32位python.exe(仅当用户想要提取访问数据库时)? 基本上像......

if access api called and struct.calcsize("P") == 8: open python 32bit interpreter and connect to 32bit driver

对所有解决方案开放......谢谢

文章,论坛和SO帖子在这个主题上比比皆是。

简而言之,您无法将(在应用程序级别)64位Python.exe连接到32位MS Access ODBC驱动程序(odbcad32.exe),因为只是数据在类型之间以不同方式存储和处理。 但是,由于具有向后兼容性 ,建议使用最低公分母,因为64位操作系统可以运行32位应用程序,而同级程序可以相互“交谈”。

至于切换模式的动态设置,这可能是一个非常广泛的解决方法,因为32位python.exe和64位python.exe本质上是不同的安装应用程序,其中包如pypyodbc彼此对应。 因此,在安装两个版本之上,您需要使用以下任一脚本编写脚本

  1. 一个python版本退出自己并使用平台或可变长度计算调用其他版本,如下struct.calcsize("p")struct.calcsize("p") ;
  2. 在命令行(例如,shell脚本,批处理文件);
  3. 通过外部程序(例如,Excel / Access VBA,Java,C#,php.exe);

外部应用程序需要根据已安装的ODBC驱动程序选择运行python脚本的版本,将注册表项作为指示符或变量类型大小。 这可能还需要为两个python.exe版本创建路径变量,并确保它们不会相互冲突,选择一个作为默认值

许多人选择根据用户的CPU环境部署两个版本的应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM