コマンドを学ぼう: リンク(W=書込)
○○別XX集計、というようなバッチタスクで使われることが多いと思います。
ここでの例は、「顧客別売上集計」です。
売上データをメインテーブル(読込)として、レコードメインは、こんな感じかと思います。
リンクテーブルの位置付けと代入の両方に同じ式番号が入るのが、書込リンクの特徴です。 初めに位置付け式が評価され、該当するレコードがあれば、そのデータを取り出してきます。 位置付け式に該当するレコードが無ければ、代入式を使って新規レコードを作成します。
インデックス項目以外は、レコード後処理で項目更新コマンドを使ってセットします。
以下、コマンドの設定について説明しておきます(左から順に)。
コマンド | リンク W=書込 |
---|---|
テーブル | ズームしてリンクするテーブルを選択すると、テーブル番号が入ります。 テーブル番号が分かっているときは、直接入力しても構いません。 また、内容欄にはテーブル名が自動的に表示されます。 |
インデック | ズームしてリンクデータを検索するためのインデックスを選択します。 インデックス番号が分かっているときは、直接入力しても構いません。 指定するとインデックス項目が自動的にセレクトコマンドで追加されます 。 (この例では「顧客コード」です。) |
順 | インデックスを使った検索方向を選択します。 A=昇順 or D=降順 |
戻 | 省略可。 |
条件 | 通常は、「Yes」(デフォルト)で使います。 |
<押さえておきたい書込リンクのツボ>
1.インデックス項目以外でも代入式は可
インデックス項目でなくても、新規レコード作成のときは代入式を使うことができます。
しかし、既存レコードを読み込んで値を書き換えることは代入式ではできません。
レコード後処理で項目更新コマンドを使っておけば、新規/既存のどちらでも書込み可能です。
2.登録リンクと書込リンクの速度差
登録リンクは位置付けの評価をしません。
それに対して書込リンクは、まず位置付けを試みて、データが無ければ代入式を使って新規レコード作成という手順になりますから、その分時間も多く必要とします。
単純にレコード作成のみを実行したいときは、書込リンクでなく登録リンクを使う方が得策と言えます。