32 位 pyodbc 和 32 位 Python 是否可以与 64 位 MS 访问数据库通信?
Is it possible for 32-bit pyodbc and 32-bit Python to talk to 64-bit MS access database?
32 位 pyodbc 和 32 位 Python 是否可以与 64 位 MS 访问数据库通信?我搜索了很多但能够找到特定的解决方案。我既不能更改 64 位版本的 MS-ACCESS,也不能更改 32 位版本的 Python 和 Pyodbc。请帮帮我..
没有。
您需要在 ODBC 驱动程序和应用程序之间匹配位数。
半选择是替代驱动程序,例如 UCanAccess + JayDeBeApi
嗯,首先,DATA 文件或数据库没有特定的 x32 或 x64 位版本。换句话说,使用 x32 Access 或 x64 位版本的 Access 创建的 Access 数据库生成的数据文件可以通过 x32 访问或 x64 位访问自由打开。
因此你不能问我如何打开 x64 位数据库,因为这个问题不相关,事实上没有这样的 "specific" 版本的数据库文件。
所以,这意味着数据库的位大小不作为一个概念存在,并且 x32 运行ning 进程可以打开使用 Access x32 创建的数据库,或者使用 Access 创建的数据库x64.
事实上,x32 位 运行ning 进程可以打开 access 数据库,然后 x64 位进程也可以同时打开数据库!!! (我们在这里假设两台不同的计算机 - 一台 运行 数据引擎的 x32 位版本,另一台工作站 ruing 说 x64 位版本。所以,实际上有两个不同的进程(一个 x32 位进程和一个 x64位进程)可以同时打开和使用数据库!!!
好的,既然我们把上面的都弄清楚了?
然后问题集中在您的软件过程上。如果您正在 运行 一个 x32 位进程(即使在 x64 位 OS 上也可以 运行 很好),那么您的软件当然需要使用已安装的 x32 位版本Access 数据引擎(以前称为 JET,但较新的版本现在称为 ACE)。
因此,Python 运行宁作为 x32 位进程,或作为 x64 是 100% 免费打开和使用该数据库。位大小无关紧要。但是,重要的是您的 运行ning 进程安装了相同位大小的 ACE 数据引擎副本。因此,您甚至不必为此安装 Access,但您将需要 ACE 数据引擎的已安装和工作副本。该数据引擎可以安装在您的计算机上,因此您甚至不需要安装 Access。当然,将需要该数据引擎的正确版本(位大小)(与您的进程内 运行ning 匹配为 x32 或 x64)。
那么,如果您 运行宁 Python 为 x32?然后你需要安装一个 x32 位版本的 ACE。
您可以在此处找到 ACE 数据引擎的工作副本:
https://www.microsoft.com/en-us/download/details.aspx?id=54920
您只需下载正确的位大小版本并安装即可。这个问题的问题是,如果你已经安装了 x64 位版本的 Access(也安装了 ACE 的副本),或者如果你已经安装了 ACE 的 X64 位版本的副本。
因此,在大多数情况下,解决方案是删除 x64 位版本的 Access(如果未安装 Access,则删除 ACE),然后安装 x32 位版本的 ACE。
问题进一步复杂化,在大多数情况下,您不能在安装 x32 位版本的同时安装 x64 位版本的 ACE。如果您现有的 Office 版本包含 Access,那么该安装也包含 ACE。 windows 安装人员会再次抱怨,因为 office 的这些部分依赖于 ACE 的工作+安装副本,当然它必须是正确的位大小才能匹配 office。
底线:
您只需安装一个 x32 位版本的 ACE 就可以使用 x32 位 运行ning 进程。 (自从第一台计算机打开以来,计算机就以这种方式工作!!例如,您不能 运行 x32 位 windows 软件说 windows 3.1 是 16 位。所以我们的行业有这种转变已经进行了 30 年 - 没什么新鲜事)。
使用 Access x32 或 x64 位 Access 创建访问的事实无关紧要,从来没有,甚至与本次讨论无关。
因此,获得安装在计算机上的 ACE 数据引擎的工作副本很重要,并且它必须与使用该数据引擎的代码的进程内位大小相匹配。非常简单,与使用任何其他代码库的软件没有什么不同 - 它必须匹配位大小。
因此,我强烈建议您使用此 link 来安装 ACE 的工作副本:
https://www.microsoft.com/en-us/download/details.aspx?id=54920
确保下载正确的位大小(x32 位版本为 x86),或 x64 位版本为 x64。
现在安装程序会检查(并抱怨)您是否安装了现有的 x64 位和部分数据引擎。 (这通常包括使用 ACE 数据引擎的办公室部分)。
有两种解决方案:
尝试从 windows 命令行安装 ACE,并包括 /silent 开关(有人告诉我以前的版本使用 /quiet 开关 - 所以它要么是 /silent,要么是 /quiet 开关(不能现在记住 - 只知道一个或另一个)。此开关还会导致安装程序 "more ignore" 已安装其他版本的 ACE,如果安装时安装了 x64 位版本的 ACE,它通常甚至会安装x32 位版本的 ACE(但是,如果您安装了 x64 ACE,那么卸载该 x64 位版本的 ACE 和访问 x64(如果已安装)要好一百万倍。
具有 Access x64 位的其他计算机、其他工作站等的事实仍将允许这些计算机打开和使用该数据文件,因为正如我指出的那样,没有也没有 x32 或 x64 这样的东西位版本的数据文件。
因此,x32 ACE/Access 或 x64 ACE/Access 都可以最自由地打开给定的数据库文件。您不能随意将 x32 位软件与 x64 位软件混合使用。因此,各种 x32 位和 x64 软件程序将安装在您的计算机上,但是如果您的开发和 运行ning 代码是 运行ning 作为 x32 位进程中的,那么进程中代码将限制为 运行ning 并将所有软件作为 x32 位使用。
32 位 pyodbc 和 32 位 Python 是否可以与 64 位 MS 访问数据库通信?我搜索了很多但能够找到特定的解决方案。我既不能更改 64 位版本的 MS-ACCESS,也不能更改 32 位版本的 Python 和 Pyodbc。请帮帮我..
没有。
您需要在 ODBC 驱动程序和应用程序之间匹配位数。
半选择是替代驱动程序,例如 UCanAccess + JayDeBeApi
嗯,首先,DATA 文件或数据库没有特定的 x32 或 x64 位版本。换句话说,使用 x32 Access 或 x64 位版本的 Access 创建的 Access 数据库生成的数据文件可以通过 x32 访问或 x64 位访问自由打开。
因此你不能问我如何打开 x64 位数据库,因为这个问题不相关,事实上没有这样的 "specific" 版本的数据库文件。
所以,这意味着数据库的位大小不作为一个概念存在,并且 x32 运行ning 进程可以打开使用 Access x32 创建的数据库,或者使用 Access 创建的数据库x64.
事实上,x32 位 运行ning 进程可以打开 access 数据库,然后 x64 位进程也可以同时打开数据库!!! (我们在这里假设两台不同的计算机 - 一台 运行 数据引擎的 x32 位版本,另一台工作站 ruing 说 x64 位版本。所以,实际上有两个不同的进程(一个 x32 位进程和一个 x64位进程)可以同时打开和使用数据库!!!
好的,既然我们把上面的都弄清楚了?
然后问题集中在您的软件过程上。如果您正在 运行 一个 x32 位进程(即使在 x64 位 OS 上也可以 运行 很好),那么您的软件当然需要使用已安装的 x32 位版本Access 数据引擎(以前称为 JET,但较新的版本现在称为 ACE)。
因此,Python 运行宁作为 x32 位进程,或作为 x64 是 100% 免费打开和使用该数据库。位大小无关紧要。但是,重要的是您的 运行ning 进程安装了相同位大小的 ACE 数据引擎副本。因此,您甚至不必为此安装 Access,但您将需要 ACE 数据引擎的已安装和工作副本。该数据引擎可以安装在您的计算机上,因此您甚至不需要安装 Access。当然,将需要该数据引擎的正确版本(位大小)(与您的进程内 运行ning 匹配为 x32 或 x64)。
那么,如果您 运行宁 Python 为 x32?然后你需要安装一个 x32 位版本的 ACE。
您可以在此处找到 ACE 数据引擎的工作副本:
https://www.microsoft.com/en-us/download/details.aspx?id=54920
您只需下载正确的位大小版本并安装即可。这个问题的问题是,如果你已经安装了 x64 位版本的 Access(也安装了 ACE 的副本),或者如果你已经安装了 ACE 的 X64 位版本的副本。
因此,在大多数情况下,解决方案是删除 x64 位版本的 Access(如果未安装 Access,则删除 ACE),然后安装 x32 位版本的 ACE。
问题进一步复杂化,在大多数情况下,您不能在安装 x32 位版本的同时安装 x64 位版本的 ACE。如果您现有的 Office 版本包含 Access,那么该安装也包含 ACE。 windows 安装人员会再次抱怨,因为 office 的这些部分依赖于 ACE 的工作+安装副本,当然它必须是正确的位大小才能匹配 office。
底线: 您只需安装一个 x32 位版本的 ACE 就可以使用 x32 位 运行ning 进程。 (自从第一台计算机打开以来,计算机就以这种方式工作!!例如,您不能 运行 x32 位 windows 软件说 windows 3.1 是 16 位。所以我们的行业有这种转变已经进行了 30 年 - 没什么新鲜事)。
使用 Access x32 或 x64 位 Access 创建访问的事实无关紧要,从来没有,甚至与本次讨论无关。
因此,获得安装在计算机上的 ACE 数据引擎的工作副本很重要,并且它必须与使用该数据引擎的代码的进程内位大小相匹配。非常简单,与使用任何其他代码库的软件没有什么不同 - 它必须匹配位大小。
因此,我强烈建议您使用此 link 来安装 ACE 的工作副本: https://www.microsoft.com/en-us/download/details.aspx?id=54920
确保下载正确的位大小(x32 位版本为 x86),或 x64 位版本为 x64。
现在安装程序会检查(并抱怨)您是否安装了现有的 x64 位和部分数据引擎。 (这通常包括使用 ACE 数据引擎的办公室部分)。 有两种解决方案: 尝试从 windows 命令行安装 ACE,并包括 /silent 开关(有人告诉我以前的版本使用 /quiet 开关 - 所以它要么是 /silent,要么是 /quiet 开关(不能现在记住 - 只知道一个或另一个)。此开关还会导致安装程序 "more ignore" 已安装其他版本的 ACE,如果安装时安装了 x64 位版本的 ACE,它通常甚至会安装x32 位版本的 ACE(但是,如果您安装了 x64 ACE,那么卸载该 x64 位版本的 ACE 和访问 x64(如果已安装)要好一百万倍。
具有 Access x64 位的其他计算机、其他工作站等的事实仍将允许这些计算机打开和使用该数据文件,因为正如我指出的那样,没有也没有 x32 或 x64 这样的东西位版本的数据文件。
因此,x32 ACE/Access 或 x64 ACE/Access 都可以最自由地打开给定的数据库文件。您不能随意将 x32 位软件与 x64 位软件混合使用。因此,各种 x32 位和 x64 软件程序将安装在您的计算机上,但是如果您的开发和 运行ning 代码是 运行ning 作为 x32 位进程中的,那么进程中代码将限制为 运行ning 并将所有软件作为 x32 位使用。