我现在有个表Table1里有ID,Code两个字段,Code是整型,数据库中查出值如下:
ID    Code
1      123
2      234
3      NULL
4      345
5      NULL
6      456
我在Delphi程序中
  .
  .
  .  
var
  a :integer ;
begin
  with qry1 do
  begin
     close;
     sql.Clear;
     sql.text :='select * from Table1 where ID=3 ';  //ID可能为表里面任意值,我这是指定的为了下面说明问题
     open ;
  end;
  a:= a+qry1.FieldByName('Code').AsInteger ;
 // 这遇到空值了,我希望当是空值时把值转换成 0   .
  .
  .     
  
end;

解决方案 »

  1.   

      if not qry1.FieldByName('Code').IsNull then
        a:= a+qry1.FieldByName('Code').AsInteger ;
      

  2.   

      a:= a+qry1.FieldByName('Code').AsInteger ;
     // 这遇到空值了,我希望当是空值时把值转换成 0 难道你是想当code为空值是让a变成0吗?如果不是那这句话有问题,FieldByName('Code').AsInteger不会是空值,因为如果code是空值,那么AsInteger方法会自动把它变成0.