1. 程式人生 > >delphi 三個有意思的函式

delphi 三個有意思的函式

此函式可以用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;