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

SQL Anywhere 12.0.1 » Ultra Light C/C++ プログラミング » チュートリアル » チュートリアル:C++ API を使用した Windows アプリケーションの構築

 

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

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

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

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

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

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

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

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

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



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

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

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