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