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的问题,那么是什么问题呢?
采用这个方式连接数据库需要DB2客户端,安装客户端后选择DB2/IBM/SQLLIB路径下的/include和/lib才有效,直接在下载的资源连接是找不到dll文件的。