could not convert variant of type(null)into type(string) 的错误!

xinya520 2009-03-23 12:16:24
我想把我查询的数据添加到Excel中,但是我一旦运行到Sl:= adoquery3.FieldValues['am']; 这一步,就显示could not convert variant of type(null)into type(string) 的错误!是不是我赋值不能这样,还请大家帮我解决,谢谢!!
部分程序如下:
adoquery3.Close;
adoquery3.SQL.Clear;
adoquery3.SQL.Text := 'select sum(weight)as weight ,sum(am)as am from SMIS_kc where (Mdate in (SELECT MAX(mdate) FROM smis_bal WHERE mdate <= '''+datetostr(dm1.Date)+''' AND name = '''+sname+''' AND color ='''+combobox4.Text+''' )) and color= '''+combobox4.Text+''' and name='''+sname+'''';
adoquery3.Open;
sl:= adoquery3.FieldValues['am'];
zl:= adoquery3.FieldValues['weight'];
excelworksheet1.Cells.item[col,2] := sl;
excelworksheet1.Cells.item[col,3] := zl;
...全文
2193 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinya520 2009-03-24
  • 打赏
  • 举报
回复
谢谢大家!!我按你们说的,已经解决了!!非常感谢!!
xinya520 2009-03-23
  • 打赏
  • 举报
回复
AM字段是NULL,是什么意思!!我查询出来的字段 AM可能是为Null的啊,如果是这样就不能这样赋值???
zhang3652 2009-03-23
  • 打赏
  • 举报
回复
据说FieldValues在转换时有时有问题,我不用它所以没碰到过
你用FieldByName('am').AsString试试吧
zhang3652 2009-03-23
  • 打赏
  • 举报
回复
不能转换NULL到STRING。你的AM字段是NULL吧
Jack_Yin 2009-03-23
  • 打赏
  • 举报
回复
楼主所说的情况
我也遇到过
一般如果 直接的null转换成string时报错
改用AsString
taste品味 2009-03-23
  • 打赏
  • 举报
回复
楼上正解...
有字段为空,就会出现这样的问题,转换一下就可以了啊
hongqi162 2009-03-23
  • 打赏
  • 举报
回复
adoquery3.SQL.Text := 'select sum(isnull(weight,0))as weight ,sum(isnull(am,0))as am from SMIS_kc where (Mdate in (SELECT MAX(mdate) FROM smis_bal WHERE mdate <= '''+datetostr(dm1.Date)+''' AND name = '''+sname+''' AND color ='''+combobox4.Text+''' )) and color= '''+combobox4.Text+''' and name='''+sname+'''';
fangzhouyu 2009-03-23
  • 打赏
  • 举报
回复
楼上说的对,用
sl:= adoquery3.FieldByName('am').asstring;

de410 2009-03-23
  • 打赏
  • 举报
回复
改为sl:= adoquery3.FieldByName('am').asstring;
试一下~~
zhang3652 2009-03-23
  • 打赏
  • 举报
回复
都报错了,当然就不行了,它都提示是转换出错了。
如果你用INTEGER存FieldByName('am').AsInteger,照样出错。
  • 打赏
  • 举报
回复
VarToStr()将NULL转换为STRING
Harryfin 2009-03-23
  • 打赏
  • 举报
回复
AsString是自动在里面做处理了,判断到空值的时候会变成空字符串,所以不会出错。用FieldValues的话需要注意自己判断。

2,498

社区成员

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

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