C / C ++程序同时连接到32位DB2和64位DB2

时间:2009-02-12 10:19:59

标签: c unix 64-bit db2 32-bit

是否有可能在同时运行32位和64位DB2实现的* IX操作系统中成功编写C / C ++程序?

确切的要求是从32位DB2数据库读取并写入64位DB2数据库。

2 个答案:

答案 0 :(得分:3)

由于C Common Client使用网络连接,因此没有明显的理由说明32位客户端不应连接到32位或64位服务器(或在两个连接上都连接)。相同的注释适用于64位客户端。用于客户端和服务器之间通信的DRDA协议应该没问题。

我可以肯定地回答Informix(你没有问过) - 我使用32位或64位ESQL / C连接到32位或64位IDS服务器而没有问题。唯一的限制是共享内存连接;那么客户端和服务器必须具有相同的“bittiness”。但是网络连接和本地(流,套接字)连接是中立的。

答案 1 :(得分:0)

我猜您的问题是,您必须同时加载两个库。您不能仅使用两个-l选项在可执行文件中链接两者,因为符号名称会发生​​冲突。如果这是问题所在,请等待你的朋友。

#include <dlfcn.h>

void * handle=dlopen(filename,RTLD_NOW|RTLD_GLOBAL);

bool (*some_function)(char * name);
some_function=(bool (*)(char *))dlsym(handle,"name_of_some_function");
if (some_function("test")) {
    ....
} else {
    ....
}

因为我不知道DB2,所以我无法帮助你,但如果这是问题所在,你现在应该有一切来解决这个问题。