在Delphi中,TADOQuery查询返回值为Null时,不能赋值给对应类型。比如,在Delphi中:
var s Value : string; ... sValue := FieldValues[sFiledName]; 我写了一个类TDBAQuery ,来代替ADOQuery。 TDBAQuery = class(TADOQuery) ... { TDBAQuery } function TDBAQuery.GetFieldValue(const sFieldName: string): Variant;
private
function GetFieldValue(const sFieldName: string): Variant;
public
property FieldValues[const FieldName: string]: Variant
read GetFieldValue; default;
end;
var
AField: TField;
begin
//处理Null值
AField := FieldByName(sFieldName);
if AField.IsNull then
Result := ''
else
Result := inherited FieldValues[sFieldName];
end;
将提示错误“ Could not convert variant of type (Null) into type (String)”