0

我想做这样的事情

function A(){
    session database_handler(....);

    result res = database_handler << "SELECT ....";

    functionB(res);
}

functionB的参数应该是什么?

将它作为指针传递是行不通的,在示例中也不行。

谢谢

4

2 回答 2

1

您可以安全地复制cppdb::result,但您只能在一个位置对其进行迭代。即cppdb::result持有对结果对象的引用(计数),因此如果您遍历行中的行,functionB则无法遍历它们functionA

所以你可以安全地定义

void functionB(cppdb::result res);

然而,它在迭代方面是一样的

void functionB(cppdb::result &res);

最后一个更快,因为它不涉及引用计数开销。

于 2013-02-06T12:15:10.370 回答
0

一种简单的方法是创建一个类似于您的结果集的结构。填充该结构并将结构指针传递给函数。

另一种方法是将您的函数声明为 functionB(result res) 即它接受类型为 result 的参数,然后从“res”中提取查询结果

于 2013-02-06T05:33:40.917 回答