gpt4 book ai didi

c++ - 如何使用 OCCI 中的 setDataBuffer 进行数组提取

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:58:52 30 4
gpt4 key购买 nike

我有一个在数据库上执行的查询,该查询返回一个记录数组,我在 Oracle OCCI 文档中读到您必须使用 ResultSet::setDataBuffer()函数从数据库中获取数组的数据。

当数据库行包含多列不同数据时,我只是不明白我应该作为前两个参数给出什么?我应该给什么类型作为我的缓冲区类型?

//example, does not contain all parts, just enough to demonstrate my point
SELECT AGE, BIRTHDATE, NAME FROM PEOPLE;
int i[10]; // Type of buffer??? Age is int, but name is a string?
ResultSet* res;
res->setDataBuffer(1 /*col index of first col in select statement*/, &i[0], OCCIINT, 10 * sizeof(int));

while(res->next()) { //Fetch data...}

到目前为止,我已经在 Google 上搜索了示例,但没有成功。我希望这里有人可以提供帮助?

最佳答案

根据我们的评论,我提供了一个使用 getString(),... 函数的简单示例:

// Statement -> stmt
// ResultSet -> res
// Connection -> con

// pseudo code ahead !

stmt = con->createStatement(MY_SELECT, MY_TAG);
stmt->setPrefetchRowCount(NUMBER_OF_PREFETCHES); // enable bulk collect
res = stmt->executeQuery();

while(res->next())
{
date = res->getDate(INDEX_OF_DATE);
age = res->getInt(INDEX_OF_AGE);
name = res->getString(INDEX_OF_NAME);

// do something with date, age, name...
}

stmt->closeResultSet(res);
con->terminateStatement(stmt);

但我想这正是您最初所做的?

关于c++ - 如何使用 OCCI 中的 setDataBuffer 进行数组提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5566103/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com