指定された値または条件に一致する最初のレコードを検索するか、または指定されたレコード番号に移動します。

LOCATE {IF テスト <WHILE テスト> <FIRST 範囲|NEXT 範囲>|RECORD 番号}
名前 説明

IF テスト

検索する値または条件。 文字リテラル値は引用符で囲み、日付時刻値は逆引用符で囲む必要があります。

WHILE テスト

省略可能

各レコードを処理するために真である必要がある条件式。 条件が false と評価するか、テーブルの最後に達したら、コマンドは実行を中止します。

メモ

WHILE を FIRST または NEXT とともに使用する場合は、1 つの制限に達するとすぐに、レコードの処理が停止します。

FIRST 範囲 | NEXT 範囲

省略可能

処理するレコード数:

  • FIRST 指定されたレコード数に達するまで、最初のレコードから処理を開始します
  • NEXT 指定されたレコード数に達するまで、現在選択されているレコードから処理を開始します

範囲は処理するレコード数を指定します。

FIRST と NEXT を省略すると、すべてのレコードがデフォルトで処理されます。

RECORD 番号

位置を示すレコード番号。

指定した値と一致する最初のレコードを検索する

次の例では、LOCATE コマンドを使用して、特定の値が最初に現れるテーブルを見つける方法を示します。

LOCATE IF Vendor_Name = "United Equipment"
LOCATE IF Vendor_Name = "Uni"
LOCATE IF Invoice_Amount > 1000
LOCATE IF Invoice_Date = `20141231`

指定した条件または式と一致する最初のレコードを検索する

次の例では、LOCATE コマンドを使用して、特定の条件または式が最初に現れるテーブルを見つける方法を示します。

LOCATE IF Vendor_Name = "United Equipment" AND Invoice_Amount > 1000 AND Invoice_Date > `20140930`
LOCATE IF Vendor_City = v_city

レコード番号によってレコードを検索する

次の例では、LOCATE コマンドを使用して、テーブル内の特定のレコードへ移動する方法を示します。

LOCATE RECORD 50

メモ

このコマンドの動作の詳細については、Analytics のヘルプを参照してください。

機能の仕組み

LOCATE コマンドは、指定した値または条件と一致する、テーブル内の最初のレコードに直接移動する場合に使用します。

指定した値または条件が見つかった場合、テーブル内で最初に一致するレコードが選択されます。 指定した値または条件が見つからなかった場合、テーブルは最初のレコードに位置付けられます。

また、LOCATE を使用すると、特定のレコード番号に直接移動できます。

LOCATE と FIND および SEEK の比較

FIND コマンドや SEEK コマンドとは違い、LOCATE コマンドでは、検索対象はインデックス付きのテーブルや単一の文字フィールドに制限されません。 LOCATE を使用すると、あらゆる型のリテラル、任意のデータ型を使用した式、データ型が混在した式を検索することができます。

インデックス付きでないテーブルの検索に使用した場合、LOCATE コマンドはテーブル内の各レコードを順次処理する必要があるため、FIND コマンドや SEEK よりも処理速度が著しく低下する可能性があります。 必要な処理時間は、テーブルのサイズ、一致するレコードの場所、および WHILE、FIRST、または NEXT を使用して検索範囲を狭めているかどうかによって異なります。

部分一致がサポートされる場合とは

文字検索では、部分一致がサポートされます。 フィールドまたは検索対象フィールドに含まれる長い値の一部を検索値に指定できるのです。 ただし、検索値は、一致を成すフィールドの先頭に現れる必要があります。

部分一致を有効または無効にする

SET コマンドを使用するか、[オプション]ダイアログボックスを使用して、部分一致を有効または無効にできます。

部分一致を有効にする 部分一致を無効にする

指定: SET EXACT OFF

または

選択解除: [オプション]ダイアログボックス(ツール > オプション > テーブル)の[正確な文字比較

結果:フィールドまたは検索対象フィールドに含まれる長い値の一部を検索値に指定できるのです。 検索値は、一致を成すフィールドの先頭に現れる必要があります。

指定: SET EXACT ON

または

選択: [オプション]ダイアログボックス(ツール > オプション > テーブル)の[正確な文字比較

結果:検索値は、一致を成すフィールドの値と正確に一致しなければなりません。

SET EXACT の詳細については、SET コマンドを参照してください。

正確な文字比較を行う]オプションの詳細については、テーブル タブ(オプション ダイアログボックス)を参照してください。