C# x32应用程序能否利用x64数据库?

C# x32应用程序能否利用x64数据库?,c#,windows,postgresql,C#,Windows,Postgresql,在一家不具名的公司与技术支持部门合作时,一名技术人员向我陈述了以下内容: 程序名称当前为x32,因此无法使用x64驱动程序。我们是 目前正在开发x64版本,但我们有很多测试 先做 他引用的x64驱动程序是用于Postgres 64位数据库的。数据库运行在x64 windows 7设备上。它已注册为ODBC数据源 据我所知,如果我要编写一个32位应用程序,让我们以C#为例,我的应用程序可以毫无问题地连接到64位数据库。正因为如此,技术人员的回答让我觉得可疑 x32应用程序确实不能使用x64数据库吗

在一家不具名的公司与技术支持部门合作时,一名技术人员向我陈述了以下内容:

程序名称当前为x32,因此无法使用x64驱动程序。我们是 目前正在开发x64版本,但我们有很多测试 先做

他引用的x64驱动程序是用于Postgres 64位数据库的。数据库运行在x64 windows 7设备上。它已注册为ODBC数据源

据我所知,如果我要编写一个32位应用程序,让我们以C#为例,我的应用程序可以毫无问题地连接到64位数据库。正因为如此,技术人员的回答让我觉得可疑


x32应用程序确实不能使用x64数据库吗?

您误解了错误

这与数据库服务器的位无关;这是关于ODBC驱动程序的比特数

ODBC驱动程序是在进程中加载的,因此它们必须与进程的位匹配


没有一个客户端代码(您自己的代码或驱动程序)知道或关心数据库服务器的位。

您误解了错误

这与数据库服务器的位无关;这是关于ODBC驱动程序的比特数

ODBC驱动程序是在进程中加载的,因此它们必须与进程的位匹配

没有一个客户端代码(您自己的代码或驱动程序)知道或关心数据库服务器的比特数。

技术人员说:

程序名称当前为x32,因此无法使用x64驱动程序

他是正确的,因为驱动程序通常作为动态库提供,并且不能在调用应用程序和动态库之间混用比特

但是,这并不意味着不能从32位应用程序连接到64位dbms。通信通常通过套接字完成,只要双方同意协议的实现,套接字不关心客户端和服务器的比特数。

技术人员说:

程序名称当前为x32,因此无法使用x64驱动程序

他是正确的,因为驱动程序通常作为动态库提供,并且不能在调用应用程序和动态库之间混用比特


但是,这并不意味着不能从32位应用程序连接到64位dbms。通信通常通过套接字完成,只要双方同意协议的实现,套接字不关心客户端和服务器的比特数。

我认为这不重要。驱动程序只是本地代码的包装,必须是32位或64位。听起来他的应用程序链接了错误的ODBC驱动程序(一个32位应用程序链接了64位本地libs,反之亦然)。我认为这不重要。这些驱动程序只是本机代码的包装,必须是32位或64位。听起来他的应用程序链接到错误的ODBC驱动程序(一个32位应用程序链接到64位本机LIB,反之亦然)。让我们看看我是否正确地理解了您的意思:假设我有一个x64数据库,但我使用x32 OBDC驱动程序注册它,那么我的x32应用程序是否能够加载x32 OBDC驱动程序,然后又能够使用x64数据库?让我们看看我是否正确地跟踪了您:假设我有一个x64数据库,但我使用x32 OBDC驱动程序注册它,那么我的x32应用程序是否能够加载x32 OBDC驱动程序,然后又能利用x64数据库吗?