COPY NAMED SELECTION

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 3


COPY NAMED SELECTION ({aTable; }name)

引数説明
aTableテーブルセレクションをコピーするテーブル, または
省略した場合デフォルトテーブル
name文字列作成する命名セレクションの名前

説明

COPY NAMED SELECTIONaTableのカレントセレクションを命名セレクションnameにコピーします。オプションtable引数が指定されていない場合は、そのプロセスのデフォルトテーブルを使用します。name引数にはセレクションのコピーが納められます。そのプロセスにおけるtableのカレントセレクションとカレントレコードは変更されません。

命名セレクションは実際にレコードを含むわけではなく、レコードへの並び順付き参照を含みます。各レコード参照はメモリを4バイト消費します。つまりCOPY NAMED SELECTIONコマンドを使用してセレクションをコピーすると、セレクション内のレコード数 x 4バイト分のメモリが必要となります。命名セレクションはメモリに置かれるため、命名セレクションに必要な分とプロセス内のテーブルのカレントセレクションに必要な分のメモリを確保しなければなりません。

nameが使用したメモリを解放するには、CLEAR NAMED SELECTIONコマンドを使用します

例題

以下の例では、[People]テーブルに未払いの送り状があるかどうかを調べています。セレクションをソートして保存します。請求書が未払いのレコードをすべて検索します。その後、そのセレクションを再利用してメモリ内の命名セレクションを消去します。ソートしたセレクションを後で使いたい場合には、命名セレクションを消去しなくても構いません:

   ALL RECORDS([People])
      `ユーザにセレクションのソートを許可する
   ORDER BY([People])
      ` 命名セレクションとしソートしたセレクションを保存
   COPY NAMED SELECTION([People];"UserSort")
      ` 未払いの請求書を検索
   QUERY([People];[People]InvoiceDue=True)
      ` レコードがあれば
   If (Records in selection([People])>0)
         ` ユーザに警告
      ALERT("Yes, there are overdue invoices on ーブル.") 
   End if
      ` ソート済みの命名セレクションを再利用
   USE NAMED SELECTION("UserSort")
      ` メモリからセレクションを取り除く
   CLEAR NAMED SELECTION("UserSort")

参照

CLEAR NAMED SELECTION, CUT NAMED SELECTION, USE NAMED SELECTION, 識別子.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次