处理TADOQuery查询返回的Null值

     在Delphi中,TADOQuery查询返回值为Null时,不能赋值给对应类型。比如,在Delphi中:       

   var

      s Value : string;

   ...

   sValue := FieldValues[sFiledName];

 

    我写了一个类TDBAQuery ,来代替ADOQuery。

  TDBAQuery = class(TADOQuery)
  private
    function GetFieldValue(const sFieldName: string): Variant;
  public
     property FieldValues[const FieldName: string]: Variant
       read GetFieldValue; default;
  end;

...

{ TDBAQuery }

function TDBAQuery.GetFieldValue(const sFieldName: string): Variant;
var
  AField: TField;
begin
  //处理Null值
  AField := FieldByName(sFieldName);
  if AField.IsNull then
    Result := ''
  else
    Result := inherited FieldValues[sFieldName];
end;

 

这样,便可以按TQuery的方式处理Null值,用('')值填充Null。
   将提示错误“  Could not convert variant of type (Null) into type (String)”

你可能感兴趣的:(处理TADOQuery查询返回的Null值)