[Delphi] カレントレコードをコピーする

今見ているデータの一部を編集して、新しくデータを作成したいありませんか?こんなときには、現在のレコードをコピーしてそのレコードを編集するのが簡単!
ということで、以下はカレントレコードをコピーする関数の例です。

procedure AppendCurrent(Dataset: TDataset); 
var 
  aField: Variant; 
  i: Integer; 
begin 
  // バリアント型の配列を作成 
  aField := VarArrayCreate([0, Pred(DataSet.FieldCount)], VarVariant); 
  // フィールドのデータを先ほどの配列にコピー 
  for i := 0 to Pred(DataSet.FieldCount)do 
    aField[i] := DataSet.Fields[i].Value; 
  // 新規レコードを追加 
  DataSet.Append ; 
  // 新規レコードに配列のデータを書き戻し 
  for i := 0 to Pred(DataSet.FieldCount)do 
    DataSet.Fields[i].Value := aField[i]; 
end; 

コメント (0件)


くろねこ研究所
https://www.blackcat.xyz/article.php/ProgramingFAQ_del0024