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++ プログラミング » チュートリアル:C++ API を使用したアプリケーションの構築

 

レッスン 3 :テーブルのローの選択と出力

次の手順では、テーブルからローを取り出し、コマンド・ラインに出力します。

♦  テーブルのローのリスト
  1. 以下のメソッドを customer.cpp に追加します。このメソッドでは、次のタスクを実行します。

    • Table オブジェクトを開きます。

    • カラム識別子を取得します。

    • 現在の位置を、テーブル内にある最初のローの前に設定します。

      テーブルに対するすべての操作は、現在の位置で実行されます。現在の位置は、最初のローの前、テーブルのいずれかのローの上、または最後のローの後ろです。この例のように、デフォルトでは、ローはプライマリ・キー値 (cust_id) に基づいて順序付けられています。別の順序でローを並べ替えるには、Ultra Light データベースにインデックスを追加し、そのインデックスを使用してテーブルを開きます。

    • 各ローに対して、cust_id と cust_name の値が書き出されます。ループは、最後のローの後に Next メソッドが false を返すまで繰り返されます。

    • Table オブジェクトを閉じます。

    bool do_select( Connection * conn ) {
      Table * table = conn->OpenTable( _TEXT("ULCustomer") );
      if( table == UL_NULL ) {
        return false;
      }
      TableSchema * schema = table->GetSchema();
      if( schema == UL_NULL ) {
        table->Release();
        return false;
      }
      ul_column_num id_cid = 
         schema->GetColumnID( UL_TEXT("cust_id") );
      ul_column_num cname_cid = 
         schema->GetColumnID( UL_TEXT("cust_name") );
      
      schema->Release();
    
      _tprintf( _TEXT("\n\nTable 'ULCustomer' row contents:\n") );
    
      while( table->Next() ) {
        ul_char cname[ MAX_NAME_LEN ];
        
        table->Get( cname_cid ).GetString(
                    cname, MAX_NAME_LEN );
        
        _tprintf( _TEXT("id=%d, name=%s \n"), (int)table->Get(id_cid), cname);
      }
      table->Release();
      return true;
    }
  2. 次の行を、main メソッドの insert メソッドの呼び出しの直後に追加します。

    do_select(conn);
  3. nmake を実行してアプリケーションをコンパイルします。

  4. コマンド・プロンプトで customer と入力してアプリケーションを実行します。