此函数可以用variant返回多个字段的值
function TDataSet.GetFieldValue(const FieldName: string): Variant;
var
I: Integer;
Fields: TList;
begin
if Pos(';', FieldName) <> 0 then
begin
Fields := TList.Create;
try
GetFieldList(Fields, FieldName);
Result := VarArrayCreate([0, Fields.Count - 1], varVariant);
for I := 0 to Fields.Count - 1 do
Result[I] := TField(Fields[I]).Value;
finally
Fields.Free;
end;
end else
Result := FieldByName(FieldName).Value
end;
---此函数可以返回FieldNames中多个字段中第pos个字段的字段名,在db文件中;ps:我手里有一组api,也是类似功能。应该比它更强大,因为接口有Mask字段,不知道性能怎么样?
ExtractFieldName(FieldNames, Pos);
--可以在不影响dataset游标的情况下返回指定的值--ps:太爽啦,找了几年这个函数,终于找到了。
function Lookup(const KeyFields: String; const KeyValues: Variant; const ResultFields: String): Variant; override;