C++使用OTL库连接DB2(错误:LINK2019)

1> OTL.cpp
1>OTL.obj : error LNK2019: unresolved external symbol _SQLFreeHandle referenced in function "public: virtual __thiscall otl_conn::~otl_conn(void)" (??1otl_conn@@UAE@XZ)
1>OTL.obj : error LNK2019: unresolved external symbol _SQLDisconnect referenced in function "public: int __thiscall otl_conn::logoff(void)" (?logoff@otl_conn@@QAEHXZ)
1>OTL.obj : error LNK2019: unresolved external symbol _SQLEndTran referenced in function "public: int __thiscall otl_conn::commit(void)" (?commit@otl_conn@@QAEHXZ)
1>OTL.obj : error LNK2019: unresolved external symbol _SQLGetDiagRecW referenced in function "public: void __thiscall otl_conn::error(class otl_exc &)" (?error@otl_conn@@QAEXAAVotl_exc@@@Z)

查了很多资料基本都是说 LIB文件没有链接,ODBC32这个库文件在VC++2010的LINK/INPUT中时默认就有的,所以不存在这个库文件没链接的问题啊。
另外为了验证VC++2010中的ODBC32.lib到底有无被编译,我用OTL连接了ACCESS数据库,因为ACCESS数据库需要用到ODBC32.lib,测试成功。
那么问题来了,这个LINK2019如果不是链接ODBC32.lib的问题,那么是什么问题呢?

阅读 3.8k
1 个回答

采用这个方式连接数据库需要DB2客户端,安装客户端后选择DB2/IBM/SQLLIB路径下的/include和/lib才有效,直接在下载的资源连接是找不到dll文件的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题