在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)”