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 を使用したデータへのアクセス

 

現在の行へのアクセス

Table オブジェクトは、次のいずれかの位置に常に置かれています。

Table オブジェクトがローの上に置かれている場合は、そのデータ型に適したメソッド・セットを使用して、そのローのカラムの値を取得したり、変更したりできます。

カラム値の取得

Table オブジェクトは、カラム値を取得するメソッド・セットを提供します。これらのメソッドは、カラム ID を引数として取ります。

次のコード・フラグメントは、lname カラムの値を取得します。このカラムの値は文字列です。

ULValue val;
char lname[ MAX_NAME_LEN ];
val = tbl->Get( UL_TEXT("lname") );
val.GetString( lname, MAX_NAME_LEN );

次のコードは、cust_id カラムの値を取得します。このカラムの値は整数です。

int id = tbl->Get( UL_TEXT("cust_id") );
カラム値の変更

値を取り出すメソッド以外に、値を設定するメソッドもあります。値を設定するメソッドは、カラム ID と値を引数として取ります。

たとえば、次のコードは、lname カラムの値を Kaminski に設定します。

ULValue lname_col( UL_TEXT("fname") );
ULValue v_lname( UL_TEXT("Kaminski") );
tbl->Set( lname_col, v_lname );

カラムの値を設定することにより、データベースのデータが直接変更されることはありません。位置がテーブルの最初のローの前または最後のローの後ろにある場合でも、プロパティに値を割り当てることができます。現在のローが定義されていないときに、データにアクセスしようとしないでください。たとえば、次の例でカラムの値をフェッチしようとすることは不正です。

// This code is incorrect
tbl.BeforeFirst();
id = tbl.Get( cust_id );
値のキャスト

選択するメソッドは、割り当てるデータ型に一致させてください。データ型に互換性がある場合は、Ultra Light が自動的にデータベースのデータ型をキャストするため、GetString メソッドを使用して整数値を文字列変数にフェッチしたりできます。データ型の明示的な変換を参照してください。