首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

查询有关问题。

2012-04-10 
查询问题。。。在SQL查询分析器中用:select sum(total) from invoice where date_build2011-09-01 and dat

查询问题。。。
在SQL查询分析器中用:
select sum(total) from invoice where date_build>'2011-09-01' and date_build<='2011-09-30'
得到total的合计数为100

在PB中
long tot_total
tot_total=0
select sum(total) into :tot_total from invoice where date_build>'2011-09-01' and date_build<='2011-09-30';

得到的tot_total的合计数为0
即select ...这个语句根本不执行!!!不知道为什么?
以前这程序都正常运行的,但这个月,查询到这语句不执行!得到的结果都是0,怪!


[解决办法]
用事件探查器跟踪一下
[解决办法]
是用的默认事务吗,把事务名叫上试试~
[解决办法]
忘了在查询后检测一下 sqlcode 和 sqlerrtext ?
[解决办法]
代码里面写SQL,最好把事物对象写上(即使是默认的),还有就是必须要检测返回值。如:
select ...into...form ...where....
using ....//(默认是sqlca)这个就是事务对象
要检查的就是sqlca.code至于他得值信息,自己查。。
[解决办法]
从语句上来看,没有错误.

我认为你在使用语句前,可能没有连接上数据库,或是连接到别的库中去了.
[解决办法]
有错误。你没检查。内嵌的into语句,如果语法错误,执行错误或者记录为空时,不会有返回值或者返回一个系统默认值,或保持初始值。我记得我写一个语句返回服务器时间,以便检查客户端的时间差,结果语句有问题,返回1900-1-1这样的。。
[解决办法]

探讨
代码里面写SQL,最好把事物对象写上(即使是默认的),还有就是必须要检测返回值。如:
select ...into...form ...where....
using ....//(默认是sqlca)这个就是事务对象
要检查的就是sqlca.code至于他得值信息,自己查。。

[解决办法]
C/C++ code
long tot_totaltot_total=0select sum(total) into :tot_total from invoice where date_build>'2011-09-01' and date_build<='2011-09-30' using sqlca;if sqlca.code = -1 then   MessageBox("SQL error", SQLCA.SQLErrText)elseif sqlca.code = 100 then   MessageBox("SQL", 'No records found')end if 

热点排行