如何将查询结果传递给函数?

时间:2013-02-06 03:29:35

标签: pointers cppcms

我想做这样的事情

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

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

    functionB(res);
}

functionB的参数应该是什么?

将其作为指针传递不起作用,如示例中那样。

由于

2 个答案:

答案 0 :(得分:1)

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

中迭代它们

所以你可以安全地定义

void functionB(cppdb::result res);

然而,就迭代而言,它将是相同的

void functionB(cppdb::result &res);

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

答案 1 :(得分:0)

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

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