別のテーブルからのデータのインポート
メモ: ボーランド データベース エンジン(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 の使い方」を参照してください。