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 C++ API は、幅広いナビゲーション作業を行うために、テーブルをナビゲーションする複数のメソッドを提供します。

テーブル・オブジェクトは、テーブルをナビゲーションする次のメソッドを提供します。

  • AfterLast   カーソルを最後のローの直後に配置します。

  • BeforeFirst   最初のローの直前に配置します。

  • First   最初のローに移動します。

  • Last   最後のローに移動します。

  • Next   次のローに移動します。

  • Previous   前のローに移動します。

  • Relative( offset )   現在のローを基準にして、符号付きオフセット値で指定された数だけローを移動します。オフセット値を正の値で指定すると、現在の結果セットのカーソル位置から前方に移動します。負の値で指定すると後方に移動します。オフセット値が 0 の場合、カーソルは現在のロケーションから移動しませんが、ロー・バッファが再配置されます。

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

次のサンプル・コードは、MyTable テーブルを開き、各ローの MyColumn カラムの値を表示します。

Table * tbl = conn->openTable( "MyTable" );
ul_column_num colID = 
   tbl->GetSchema()->GetColumnID( "MyColumn" );

while ( tbl->Next() ){
   char buffer[ MAX_NAME_LEN ];
   ULValue colValue = tbl->Get(colID);
   colValue.GetString(buffer, MAX_NAME_LEN);
   printf( "%s\n", buffer );
}

テーブル・オブジェクトを開くと、テーブルのローがアプリケーションに公開されます。デフォルトでは、ローはプライマリ・キー値の順に並んでいますが、テーブルを開くときにインデックスを指定すると特定の順序でローにアクセスできます。

次のコード・フラグメントは、ix_col インデックスで順序付けられた MyTable テーブルの最初のローに移動します。

ULValue table_name( UL_TEXT("MyTable") )
ULValue index_name( UL_TEXT("ix_col") )
Table * tbl = 
   conn->OpenTableWithIndex( table_name, index_name );

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