ここでは, 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;