2.7.2 繰り返し列の参照

ここでは, ResultSetに取得した繰り返し列の要素を参照する方法について説明します。

ResultSetに取得した繰り返し列の要素をアプリケーションから直接アクセスできません。そのため,GetFieldメソッドの引数にDBRArrayDataConstPtrオブジェクトへのポインタを指定しDBArrayDataオブジェクトにResultSetの要素を取込みます。

要素の値は,DBArrayDataオブジェクトのGetDataメソッドで参照します。すべての要素を参照するには,GetDataメソッドを要素数分繰り返し指定する必要があります。要素数は,DBRArrayDataオブジェクトのGetArrayCountメソッドで調べられます。

また,要素の値は,GetDataメソッドの引数で指定したデータ型に変換できます。

////////////////////////////////////////////////////////////////////////
// ResultSetを利用した要素の参照例
INT32 i32Loop;
LPTSTR lptData;
//データベースのデータの検索処理
                  :
// 検索結果をResultSetに取得
// 参照時はConst付きポインタを使用
DBRArrayDataConstPtr cpArray;                // DBRArrayDataConstPtrの宣言
pResultSet->GetField(1,&cpArray);            // データの取得

// 要素数分ループして参照
for(i32Loop = 1;i32Loop < cpArray->GetArrayCount()+1;i32Loop++)
{
if(cpArray->GetData(i32Loop, &lptData))
 cout << "ArrayData(" << i32Loop << ")=" << lptData << endl;
else
 cout << "ArrayData(" << i32Loop << ")=欠損値" << endl;
}
cout << endl;