MTblSet

式エディタ > 関数ディレクトリ

 

BLOBの内容をメモリテーブル化

(MTblGetで作成された)BLOB項目の内容をメモリテーブルに展開します。

構文:

MTblSet(BLOB項目、テーブル番号、DB テーブル名、 モード)

パラメータ:

BLOB項目 … メモリテーブルの内容を含んだBLOB項目

テーブル番号 … [データ]リポジトリでのメモリテーブルの番号

DBテーブル名 … (指定された場合)同じテーブル構成の異なる内容を参照します。

モード … メモリテーブルを更新する場合のモードを指定します。以下のモードがあります。

  • 0 … 重複レコードがある場合、アボートします。BLOBデータから新規レコードを追加しますが、重複レコードが見つかった場合、処理が中断され全ての追加レコードは破棄されます。

  • 1 … 重複レコードがある場合、スキップします。BLOBデータから新規レコードを追加し、重複レコードが見つかった場合、次のレコードの処理に移ります。

  • 2 … 重複レコードがある場合、上書きします。BLOBデータから新規レコードを追加し、重複レコードが見つかった場合、最新のデータで更新します。

  • 3 … 既存のテーブルを初期化します。既存のテーブルの内容が削除され新しく作り直されます。

上記以外の値が指定された場合は、「0」と見なされます。

戻り値:

数値 … 正常に終了した場合は 0 が返ります。それ以外の場合、以下のような負数が返ります。

  • -1 … 重複インデックスが発生した(モードが「0」の場合)

  • -2 … メモリテーブル構造が BLOBパラメータによって供給されたテーブル構造と合っていない。

  • -3 … 指定したテーブルがメモリテーブルではない

  • -4 … メモリテーブルが他の理由で更新できなかった

  • -5 … 既存のテーブルが削除できなかった(モードが「3」の場合)

注意事項:

  • 関数の実行中に発生した全ての DB エラーは、テーブル内容の終りまでスキップされます。

  • 現在のタスクのトランザクション設定に関係なく、ネストトランザクションとして、メモリテーブルが更新実行されます。 これは、関数が終了した時、全ての追加レコードがコミットされることを意味します。

  • この関数は、メモリテーブル構造と BLOB の内容の構造の整合性を確認します。テーブル構造は、カラムの順番、数、型のみ比較され、インデックスや外部キーはチェックされません。

  • DBテーブル名パラメータ(これによって別のテーブルを参照することが可能です。) で指定されたテーブルが、実行中のタスクでオープンされている場合は処理できません。