需要写一个卸数的工具,有一个SELECT MAX的操作:
1EXEC SQL SELECT MAX(index) INTO :index
2 FROM table
3 WHERE x=:x AND y=:y;
目的是取出满足WHERE条件的index的最大值。但是得出的结果却是-21474836478,十六进制为0x00000080,非常奇怪。尝试了很多次还是这种结果,后来在网上找到了一篇文章(
http://www.tek-tips.com/viewthread.cfm?qid=1501792&page=3),大致意思是当满足WHERE条件的条数为0时,这条语句会有问题。仔细检查才发现我其中的y值取错了,造成符合条件的记录数为0,造成以上的问题,至于index为什么会有那个值原因未知。
结论是:
在使用SELECT MAX之前,需要首先确定满足WHERE条件的COUNT(*)>0,否则会造成未知错误。
PS:至于刚才网址中作者所说的空表时会报-201错我没有碰到,我在空表时和没找到记录时现象相同。
posted on 2010-02-25 23:00
RayRiver 阅读(749)
评论(0) 编辑 收藏 引用 所属分类:
C/C++ 、
database