setdatabuffer() による配列フェッチを使用する場合、最後に残った行であるすべての行をフェッチする方法の問題をブロックしました。example という名前のテーブルには 80405 行あります。OcciResultSet resultSet = occi.executeQuery("例から x、y を選択");
const int size = 10000;
double xs[size], ys[size];
ub4 *length = NULL;
resultSet->setDataBuffer(1, &xs[0], oracle::occi::OCCIBDOUBLE, sizeof(xs[0]), length);
resultSet->setDataBuffer(2, &ys[0], oracle::occi::OCCIBDOUBLE, sizeof(ys[0]), length);
int count = 0;
while (resultSet->next(size) == oracle::occi::ResultSet::DATA_AVAILABLE)
{
for (int i = 0; i < size; i++)
{
printf("row: %d\n", ++count);
double x = xs[i];
double y = ys[i];
}
}
最初の 80000 行のみをフェッチできます。最後の 405 行が残っています。最後の 405 行を取得する方法。前もって感謝します。