レコードを一括で登録する方法は?

解決


ゆうた  2017-02-03 01:38:20  No: 48503

Windows10、DelphiXe8、Accessで開発しています。下記のサンプルでFDTable1のフィールドとFDTable2のフィールドが同一だったとしてレコードを同じ内容で登録する場合、for文を使いテーブルのフィールド数分登録しています。下記の様なfor文を使わないで一括で登録する方法がありましたらお教え下さい。宜しくお願いします。

var
  i :Integer;
begin
  FDTable1.Open; FDTable2.Open;
  while not FDTable1.Eof do
  begin
    FDTable2.Append;
    for i :=0 to FDTable1.FieldCount -1 do
    begin
      FDTable2.Fields[i].AsString :=FDTable1.Fields[i].AsString;
    end;
    FDTable2.Post;
    FDTable1.Next;
  end;
  FDTable1.Close; FDTable1.Close;
end;


igy  2017-02-03 04:41:04  No: 48504

Accessで使えるかわかりませんが、Oracleだと、

表をSELECTして別の表へINSERTする(INSERT 〜 SELECT)
http://www.projectgroup.info/tips/Oracle/SQL/SQL000004.html

のような方法とか、あるみたいです。


igy  2017-02-03 05:11:02  No: 48505

INSERT INTO ステートメント (Microsoft Access SQL)
https://msdn.microsoft.com/ja-jp/library/office/ff834799.aspx

とか、あるので、SQLを使えば、Accessでもできそうな気がしますね。

TFDTableではなく、TFDQueryを使って、試してみるのは、いかがですか?


ゆうた  2017-02-03 19:45:58  No: 48506

igyさん、有難う御座います。出来ました!


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加