首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqlpp查询未从执行返回

mysqlpp查询未从执行返回
EN

Stack Overflow用户
提问于 2011-08-24 09:13:43
回答 1查看 1K关注 0票数 0

我有一个相当简单的调用,我正在尝试对数据库进行调用。我将所有内容都包含在try/catch和if语句中,但是...没什么。我知道我正在建立连接(每次我尝试运行脚本时,连接引用计数都会以MySQL递增),但它似乎永远不会返回。代码为:

代码语言:javascript
复制
 if (!conn.connect(db, server, username, pass))
 { /* Log error to a file */}
 try
 {
     mysqlpp::Query query = conn.query();
     query << "CALL db.test('1', '2')";
     std::cout << "About to call query" << std::endl;
     if (mysqlpp::StoreQueryResult res = query.store())
     {
        std::string toReturn = "";
        res[0][0].to_string(toReturn);
        std::cout << "Query called.  Result: " << toReturn << std::endl;
     }
 }
 catch(Exception e)
 { /*Output caught exception*/ }

我得到了:

代码语言:javascript
复制
    About to call query

作为我唯一的输出。我在那里有更多的调试(查询被正确地放在一起,连接是正确的,等等)。有没有人知道可能会发生什么,或者我下一步应该检查什么?

谢谢!

--编辑:如果我直接从MySQL运行调用,一切都会按预期工作,所以这不会导致问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-12 18:19:46

您应该在conn.query()内调用该查询;例如

代码语言:javascript
复制
std::cout << "About to call query" << std::endl;
mysqlpp::Query query = conn.query("CALL db.test('1', '2')");
if (mysqlpp::StoreQueryResult res = query.store())
{
   std::string toReturn = "";      //this is not necessary
   res[0][0].to_string(toReturn);  //this is not necessary

   for (size_t i = 0; i < res.num_rows(); ++i) 
   {
        std::cout << "Query called.  Result: " << res[i][0] << std::endl;
   }
}

您可以参考http://tangentsoft.net/mysql++/doc/html/userman/tutorial.html中的示例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7169402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档