SCAN INDEX
SCAN INDEX ( aField ; number {; > または <} )
引数 | 型 | 説明 | |
---|---|---|---|
aField | Field | → | インデックスをスキャンするインデックスフィールド |
number | Integer | → | 返すレコード数 |
> または < | 演算子 | → | >: インデックスの始まりから <: インデックスの終わりから |
説明
SCAN INDEXは、aField フィールドを含むテーブルからnumber個のレコードのセレクションを作成します。<を渡した場合、SCAN INDEXはインデックスの最後からnumber個のセレクション作成します。>を渡した場合、SCAN INDEXはインデックスの先頭からnumber個のセレクションを作成します。このコマンドは、インデックスを用いるため非常に効率が良くなります。
Note: 結果のセレクションは、ソートされていません。
SCAN INDEXは、インデックスフィールドにのみ使用できます。このコマンドはカレントプロセスのテーブルのカレントセレクションを変更し、セレクションの先頭レコードをカレントレコードとしてロードします。
テーブル内のレコード数より多くのレコードを指定した場合、SCAN INDEXはすべてのレコードを含むセレクションを作成します。
注: このコマンドはオブジェクト型フィールドをサポートしません。
例題
以下の例は、ワースト50の顧客とベスト50の顧客に手紙を出します:
SCAN INDEX([Customers]TotalDue;50;<) // ワースト50の顧客を得る
ORDER BY([Customers]Zipcode;>) // 郵便番号で並び替え
FORM SET OUTPUT([Customers];"ThreateningMail")
PRINT SELECTION([Customers]) // 手紙を印刷
SCAN INDEX([Customers]TotalDue;50;>) // ベスト50の顧客を得る
ORDER BY([Customers]Zipcode;>) // 郵便番号で並び替え
FORM SET OUTPUT([Customers];"Thanks Letter")
PRINT SELECTION([Customers]) // 手紙を印刷