32位pyodbc和32位Python有可能与64位MS访问数据库对话吗



32位pyodbc和32位Python是否可以与64位MS访问数据库对话?我搜索了很多,但可以找到一个具体的解决方案。我既不能更改64位版本的MS-ACCESS,也不能更改32位版本的Python和Pyodbc。请帮帮我…

没有。

您需要匹配ODBC驱动程序和应用程序之间的位。

一半的替代方案是替代驱动程序,如UCanAccess+JayDeBeApi

首先,没有特定的x32或x64位版本的DATA文件或数据库。换言之,使用x32 Access或x64位版本的Access创建的Access数据库会生成一个数据文件,该文件可以通过x32访问或x64位访问自由打开。

因此,你不能问我如何打开x64位数据库,因为这个问题与此无关,事实上没有这样的"特定"版本的数据库文件。

因此,这意味着数据库的位大小并不是一个概念,x32运行的进程可以打开使用Access x32创建的数据库,也可以打开使用Access x64创建的数据库。

事实上,一个x32位的运行进程可以打开一个访问数据库,然后一个x64位的进程也可以同时打开数据库!!!(我们假设有两台不同的计算机-一台运行x32位版本的数据引擎,另一台工作站运行x64位版本。因此,事实上,两个不同的进程(x32位进程和x64位进程)可以同时打开和使用数据库!!!

好吧,既然我们已经解决了以上问题?

然后问题集中在您的软件过程上。如果您正在运行x32位进程(即使在x64位操作系统上也可以而且确实运行良好),那么您的软件当然需要使用已安装的x32位版本的Access数据引擎(以前称为JET,但现在更新的版本称为ACE)。

因此,作为x32位进程或x64运行的Python可以100%免费打开和使用该数据库。钻头大小无关紧要。然而,重要的是,您正在运行的进程已安装了相同位大小的ACE数据引擎的副本。因此,您甚至不必安装Access就可以实现这一点,但您将需要ACE数据引擎的安装和工作副本。此数据引擎可以安装在您的计算机上,因此您甚至不需要安装Access。当然,需要该数据引擎的正确版本(位大小)(与您以x32或x64运行的进程相匹配)。

那么,如果您将Python作为x32运行呢?然后您需要安装一个x32位版本的ACE。

你可以在这里找到ACE数据引擎的工作副本:

https://www.microsoft.com/en-us/download/details.aspx?id=54920

您只需下载正确的位大小版本并安装即可。这个问题的问题是,如果你已经安装了x64位版本的Access(也安装了ACE的副本),或者如果你已经已经安装了x64位版本的ACE的副本。

因此,在大多数情况下,解决方案是删除x64位版本的Access(如果未安装Access,则删除ACE),然后安装x32位版本的ACE。

问题更为复杂的是,在大多数情况下,你不能在安装x32位版本的同时安装x64位版本的ACE。如果您有包含Access的Office现有版本,那么该安装也包含ACE。窗户安装人员会再次经常抱怨,因为办公室的这些部分依赖于ACE的工作+安装副本,当然它必须是正确的位大小才能与办公室相匹配。

底线:您只需安装一个x32位版本的ACE,就可以使用x32位运行的进程。(自从第一台电脑启动以来,电脑就是这样工作的!!例如,你不能在windows 3.1上运行x32位的windows软件,也就是16位。所以我们的行业已经进行了30年的这种转变,这并不是什么新鲜事)。

访问是用access x32或x64位access创建的,这一事实无关紧要,也从未发生过,甚至与本讨论无关。

因此,重要的是,您要在计算机上安装ACE数据引擎的工作副本,并且它必须与使用该数据引擎的代码的进程内比特大小相匹配。非常简单,与使用任何其他代码库的软件没有什么不同——它必须与比特大小相匹配。

因此,我强烈建议您使用此链接来安装ACE的工作副本:https://www.microsoft.com/en-us/download/details.aspx?id=54920

请确保下载正确的位大小(x86表示x32位),或x64表示x64位版本。

现在,安装程序确实检查(并抱怨)您是否安装了现有的x64位和数据引擎的部分。(这通常包括使用ACE数据引擎的办公室部分)。有两种解决方案:试着从windows命令行安装ACE,并包含/silent开关(我被告知以前的版本使用/quiet开关,所以它要么是/silent,要么是/quiet(现在记不清了,只知道其中一个)。此开关还导致安装程序"更多地忽略"已安装的其他版本的ACE,并且在安装x32位版本的ACE时,如果安装了x64位版本的ACE,则通常会安装它(但是,如果安装x64 ACE,则最好卸载该x64位版本的ACE,如果安装Access x64)。

其他计算机、其他工作站等具有Access x64位的事实仍然允许这些计算机打开并使用该数据文件,因为正如我所指出的,没有也没有x32或x64位版本的数据文件。

因此,x32 ACE/Access或x64 ACE/Access可以最自由地打开给定的数据库文件。你不能自由做的是将你的x32位软件与x64位软件混合。因此,所有类型的x32位和x64软件程序都将安装在您的计算机上,但如果您的开发和运行代码是作为x32位进程内代码运行的,则该进程内代码将仅限于以x32位运行和使用所有软件。

最新更新