Delphi 7 下读取Oracle中值为null的字段的处理

    技术2025-01-17  56

    环境:Delphi 7 + Oracle 11g

    Oracle中的字段值''就等同于null,这点和Sql Server不同,Sql Server中''(两个单引号的空字符)和null是两个值。

    在Delphi 7中使用ADOQuery读取Oracle中的null字段时可用如下方式:

     

    1、如果读取的字段是number数字型

    aa := ADOQuery1.FieldByName('traincount').AsInteger;

    注:当traincount字段的值为null时,使用AsInteger将返回0。

     

    2、如果读取的字段是varchar2字符型

    bb := ADOQuery1.FieldByName('trainid').AsString;

    注:当trainid字段的值为null时,使用AsString将返回'',就是Delphi 7的bb变量的值将是''(空字符)。

     

     

    3、如果使用ADOQuery1.FieldByName('trainid').Value 或者 ADOQuery1.FieldValues['traincount']方式引用字段值,那么在遇到字段值为null时,返回的值也将是null。如果非要使用上述方式引用,可增加null的判断。

    if ADOQuery1.FieldByName('trainid').IsNull  then

          cc := ''

    else

          cc := ADOQuery1.FieldByName('trainid').Value;

     

     

    最新回复(0)