获取连接句柄失败是什么原因?

ssdut_nowind 2007-11-13 03:56:29
//Line 1
iRc = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&ghEnv);
if(iRc != SQL_SUCCESS){
NCRDB2INF_terminate(ghEnv,iRc);
return(-4);
}
//Line 2
if(SQLAllocHandle(SQL_HANDLE_DBC,ghEnv,&ghDbc) != SQL_SUCCESS){
return(-5);
}
//Line 3
if(NCRDB2INF_dbconnect(ghEnv,&ghDbc,gachDSN,gachUID,gachPWD) != 0){
return(-6);
}

执行到Line 2时出错返回了,代码是客户给的,在客户那能正常运行,所以我怀疑是我系统环境的原因。
获取ODBC环境句柄已经通过了,为什么无法获得连接句柄呢?
难道还要额外安装什么驱动吗?
我系统安装了DB2 9的客户端,系统为windows XP,在控制面板中已经配置了到DB2的ODBC连接。谁能告诉我是什么原因出错的啊?该如何解决?
...全文
405 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssdut_nowind 2007-11-14
  • 打赏
  • 举报
回复
谢谢大家帮助,似乎是odbc版本的原因,后来在2前面加了如下语句就好用了。
iRc = SQLSetEnvAttr(ghEnv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0);
if (iRc != SQL_SUCCESS && iRc != SQL_SUCCESS_WITH_INFO) {
return (-1);
}
ttlyfast 2007-11-14
  • 打赏
  • 举报
回复
GetLastError 用法

http://blog.csdn.net/ttlyfast/archive/2007/04/03/1550556.aspx
jixingzhong 2007-11-14
  • 打赏
  • 举报
回复
GetLastError 查询一下原因
ckt 2007-11-14
  • 打赏
  • 举报
回复
看返回值 查MSDN
cceczjxy 2007-11-14
  • 打赏
  • 举报
回复
应该有个error-code值,你打印出来看看是什么原因.
Treazy 2007-11-13
  • 打赏
  • 举报
回复
建议转到数据库去!

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧