我正在使用 SQLmemTable (Windows 7) 运行 Delphi XE3。我有一个错误
Could not convert variant of type (Null) into type (Integer)
并使用表中的第二条记录将错误追溯到这行代码。
hh:=tblPop['HHINCOME'];
我检查了表的第二条记录是否有空字段,但一无所获。然后我尝试了以下代码:
var
q:variant;
zz,s:string;
hh:integer;
……
q := tblPop['HHINCOME'];
s:=vartostr(q);
if VarIsNull(q) then
zz := 'q is a null variant '+s
else
zz := 'q is not a null variant '+s;
ShowMessage(zz);
hh:=Strtoint(s);
该消息返回q
非空,它返回一个整数值,s
但当我s
在最后一行转换为整数时,我仍然收到相同的错误消息。如果我注释掉该行
// hh:=Strtoint(s);
并将其替换为静态值
hh:=3;
程序执行没有错误。
一个变量怎么可能同时有一个值和为空?
提前致谢