免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10134 | 回复: 16
打印 上一主题 下一主题

急!请教一个问题:odbc的SQLFetch问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-11 11:43 |只看该作者 |倒序浏览
20可用积分
数据库是oracle.
程序是用C/C++开发的.
现在有一个奇怪的问题:  SQLFetch在执行查询数据库的时候,(查询的是一个视图). 程序有时候可以查询到,即返回0(SQL_SUCCESS)
但也有时候返回-1.这时我的程序就不会找到数据.但实际上到底有没有数据,这个情况不容易判断,很难重现.

如果数据库里没有数据,应该返回100(SQL_NO_DATA_FOUND) 才对啊!?

什么情况下,SQLFetch会返回-1,而且是偶尔返回-1? 哪有介绍这块的资料啊?

请高手给帮帮忙!谢谢谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-07-11 11:50 |只看该作者
查查文档,一般应该有错误码的。

应该和SQL_NO_DATA_FOUND应该和在一起的。

[ 本帖最后由 nicozhou 于 2008-7-11 11:53 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-07-11 11:56 |只看该作者
在sqlext.h中有如下
/* define for SQL_DIAG_ROW_NUMBER and SQL_DIAG_COLUMN_NUMBER */
#if (ODBCVER >= 0x0300)
#define SQL_NO_ROW_NUMBER                                               (-1)
#define SQL_NO_COLUMN_NUMBER                                    (-1)
#define SQL_ROW_NUMBER_UNKNOWN                                  (-2)
#define SQL_COLUMN_NUMBER_UNKNOWN                               (-2)
#endif

但是不知道和这个有没有关系.怎么判断具体的错误?

论坛徽章:
0
4 [报告]
发表于 2008-07-11 11:58 |只看该作者
sql.h:

#define SQL_ERROR                 (-1)


但是 光看SQL_ERROR 也不知道此时数据库到底出现什么问题了啊?

论坛徽章:
0
5 [报告]
发表于 2008-07-11 12:03 |只看该作者
还有没有更详细的显示当前数据库状态的api?

论坛徽章:
0
6 [报告]
发表于 2008-07-11 12:16 |只看该作者

回复 #1 larace 的帖子

在ODBC中,你可以用SQLGetDiagField或SQLGetDiagRec诊断你的错误原因.

论坛徽章:
0
7 [报告]
发表于 2008-07-11 12:21 |只看该作者
估计是你查询的条件有问题,导致没有返回SQL_NO_DATA_FOUND,而报了一个系统错误。

Probably one of the rows which satisfies your WHERE condition
contains a column whose value is NULL .

参见http://www.dbforums.com/showthread.php?t=561362,请看完

论坛徽章:
0
8 [报告]
发表于 2008-07-11 12:57 |只看该作者
没看到有对-1的说明啊

论坛徽章:
0
9 [报告]
发表于 2008-07-11 13:58 |只看该作者
你应该找为啥不是100(SQL_NO_DATA_FOUND)的原因。

按照你说的,应该是返回100

论坛徽章:
0
10 [报告]
发表于 2008-07-11 14:01 |只看该作者
呵呵 是啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP