我想做这样的事情
function A(){
session database_handler(....);
result res = database_handler << "SELECT ....";
functionB(res);
}
functionB的参数应该是什么?
将其作为指针传递不起作用,如示例中那样。
由于
答案 0 :(得分:1)
您可以安全地复制cppdb::result
,但您可以只在一个位置迭代它。即cppdb::result
保存对结果对象的引用(计数),因此如果您遍历functionB
中的行,则无法在functionA
所以你可以安全地定义
void functionB(cppdb::result res);
然而,就迭代而言,它将是相同的
void functionB(cppdb::result &res);
最后一个更快,因为它不涉及引用计数开销。
答案 1 :(得分:0)
一种简单的方法是创建一个类似于结果集的结构。 填充该结构并将结构指针传递给函数。
另一种方法是将你的函数声明为functionB(结果res),即它接受结果类型的参数,然后从“res”中提取查询结果