4D v16.3

COPY NAMED SELECTION

ホーム

 
4D v16.3
COPY NAMED SELECTION

COPY NAMED SELECTION 


 

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

説明   

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
テーマ: 命名セレクション
番号: 331

This command can be run in preemptive processes

 
履歴 

初出: < 4D v6

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)