別のテーブルからのデータのインポート

提供: RAD Studio
移動先: 案内検索

BDE 対応データセットの利用:インデックス への移動

メモ: ボーランド データベース エンジン(BDE)の使用は推奨されません。今後 BDE は機能拡張されません。たとえば、BDE では Unicode がサポートされていません。BDE を使用して新たに開発しないことをお勧めします。既存のデータベース アプリケーションを BDE から dbExpress に移行することを検討してください。

テーブルコンポーネントの BatchMove メソッドを使用すれば、別のテーブルからデータをインポートできます。BatchMove では以下のことができます。

  • ほかのテーブルから当該テーブルへレコードをコピーする
  • ほかのテーブルの対応レコードで当該テーブルのレコードを更新する
  • ほかのテーブルのレコードを当該テーブルの末尾に追加する
  • ほかのテーブルにソースがある当該テーブルのレコードを削除する

BatchMove には、パラメータを 2 つ指定します。データのインポート元のテーブルの名前と、どのようなインポート操作を実行するかを決めるモード指定です。次の表に設定可能なモードを示します。

BatchMove インポートモード :

意味

batAppend

インポート元テーブルのすべてのレコードを現在のテーブルの最後に追加する

batAppendUpdate

インポート元テーブルのすべてのレコードを現在のテーブルの最後に追加し、現在のテーブルの既存のレコードをインポート元テーブルの対応するレコードで更新する

batCopy

インポート元テーブルのすべてのレコードを現在のテーブルにコピーする

batDelete

インポート元テーブルと共通するすべてのレコードを現在のテーブルから削除する

batUpdate

現在のテーブルの既存のレコードをインポート元テーブルの対応するレコードで更新する

たとえば次のコードは、現在のテーブルのすべてのレコードを、現在のインデックス内に同じ項目値を持つ、Customer テーブルのレコードで更新します。

Table1.BatchMove('CUSTOMER.DB', batUpdate);
Table1->BatchMove("CUSTOMER.DB", batUpdate);

BatchMove は正常にインポートできたレコードの数を返します。

警告: batCopy モードでレコードをインポートすると、既存のレコードが上書きされます。既存のレコードを保持するには batAppend を使用します。

BatchMove で行う処理は、BDE がサポートするバッチ処理機能の一部にすぎません。TBatchMove コンポーネントを使用すると、ほかの機能も実行できます。2 つ以上のテーブル間で大量のデータを移動する必要があるときは、テーブルの BatchMove メソッドを呼び出すのではなく、TBatchMove を使用してください。TBatchMove の使い方については、「TBatchMove の使い方」を参照してください。

関連項目