如何判断查询空值?

sjsmsh 2006-08-15 01:18:58
各位大虾,我在写一个语句的时候很郁闷啊,可能很弱智,大家帮帮忙啊~~
语句是这样写的:
with qry do
begin
close;
sql.clear;
sql.add('select sum(amount) from CosttempTable');//amount是Costtemptable表中的一个字段,money型的
open;
end;
因为引发这个查询的是一个Click事件,而有时候这个临时表里是没有数据的,
我定义了一个total,整形的,然后写
if qry.Fieldvalues['SUM'] = '' then total := 0;
total := qry.Fieldvalues['SUM'];
然后我就用inttostr(total)把数值转换为STRING输出,却总是在当临时表里没有数据时出错,说不能将空类型转为STRING,帮帮忙啊!小弟第一次用DELPHI,以前一直用C的
...全文
163 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjsmsh 2006-08-15
  • 打赏
  • 举报
回复
呵呵,谢谢大家,接分,虽然不多。
hgluo 2006-08-15
  • 打赏
  • 举报
回复
不要使用qry.Fieldvalues['SUM']
采用qry.FieldByName('SUM').asInteger
就不会有这样的错误了

Fieldvalues['SUM'] 的返回值是Variant类型
sjsmsh 2006-08-15
  • 打赏
  • 举报
回复
请教3楼的,为什么我用了你的方法后,数据搞反了,当表为空值时,Total有值,当表为不空时,Total为0??
sjsmsh 2006-08-15
  • 打赏
  • 举报
回复
谢谢楼上的,方法虽然是这样,可还是不行,报同样的错。
我想了一下,是不是查询语句的问题,执行这条语句recordcount 应该一直是1 吧?
nadel 2006-08-15
  • 打赏
  • 举报
回复
在SQL语句里加个isnull函数把空值转为0,'select Isnull(sum(amount), 0) from CosttempTable'

然后在操作记录的时候加(判断记录集是否为空):
if not IsEmpty then
begin

end;
wudi_1982 2006-08-15
  • 打赏
  • 举报
回复
with qry do
begin
close;
sql.clear;
sql.add('select sum(amount) from CosttempTable');//amount是Costtemptable表中的一个字段,money型的
open;
if recordcount <> 0 then
begin
//查询到数据,则进行操作A
end else begin
//没有查询到数据,则...B
end;
end;

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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