Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Ultra Light - C/C++ プログラミング » アプリケーション開発 » Ultra Light C++ API を使用したアプリケーションの開発 » テーブル API を使用したデータへのアクセス

 

ローの検索

Ultra Light には、データを操作するための操作モードがいくつかあります。検索では、これらのモードのうち、検索とルックアップの 2 つを使用できます。Table オブジェクトには、テーブル内の特定のローを検索するために、これらのモードに対応するメソッドがあります。

注意

Find メソッドと Lookup メソッドを使用して検索されるカラムは、テーブルを開くのに使用されたインデックスにあることが必要です。

  • find メソッド   Table オブジェクトを開いたときに指定したソート順に基づいて、指定された検索値と正確に一致する最初のローに移動します。検索値が見つからない場合は、最初のローの前、または最後のローの後ろに位置設定されます。

  • lookup メソッド   Table オブジェクトを開いたときに指定したソート順に基づいて、指定された検索値と一致するか、それより大きい値の最初のローに移動します。

♦  ローを検索するには、次の手順に従います。
  1. 検索モードまたはルックアップ・モードを開始します。

    テーブル・オブジェクトでメソッドを呼び出してモードを設定します。たとえば、次のコードは検索モードを開始します。

    tbl.FindBegin();
  2. 検索値を設定します。

    現在のローで検索値を設定します。これらの値の設定は、データベースではなく、現在のローを保持しているバッファにのみ影響します。たとえば、次のコードは、バッファ内の値を Kaminski に設定します。

    ULValue lname_col = t->GetSchema()->GetColumnID( UL_TEXT("lname") );
    ULValue v_lname( UL_TEXT("Kaminski") );
    tbl.Set( lname_col, v_lname );
  3. ローを検索します。

    適切なメソッドを呼び出して検索を実行します。たとえば、次のコードは、現在のインデックスで指定された値と正確に一致する最初のローを検索します。

    マルチカラム・インデックスの場合、最初のカラムの値が常に使用され、他のカラムは省略できます。

    tCustomer.FindFirst();
  4. ローの次のインスタンスを検索します。

    適切なメソッドを呼び出して検索を実行します。検索操作の場合は、FindNext でインデックス内のパラメータの次のインスタンスを検索します。ルックアップ操作では、MoveNext で次のインスタンスを検索します。

UltraLite_Table_iface クラスを参照してください。