MySQL准备好的语句没有在使用C++连接器的无限循环中清理
我正在编写一个程序,它在接收到新数据时每隔几秒更新一次MySQL表。该函数有一个不断更新的无限循环,其内部的另一个循环遍历表行并相应地选择数据。MySQL准备好的语句没有在使用C++连接器的无限循环中清理
不幸的是,无论我做什么,我遇到的最可悲的错误:
Can't create more than max_prepared_stmt_count statements
我试着声明seen in the example code here每次迭代后,简单地删除所有MySQL相关的值(除CON和驱动程序)。
我已经尝试添加
stmt = NULL; stmt->close();
只是在每一个前值的情况。
我试着用auto_ptr重写程序,据说根据this的答案自动清理。
我甚至试图关闭和重建每次迭代后连接到MySQL服务器,但即使没有帮助我。
请帮忙。
回答:
有关您的循环的更多信息可能需要。
但它听起来像你stmt = con->createStatement();
是你的循环中。在循环开始之前,您只需要一个连接。
然后你就可以在你的循环执行statment多次,res = stmt->executeQuery("SELECT 'Hello World!' AS _message");
当你的应用程序终止,那么你闭上你的语句,delete stmt;
从mysql.com“的默认值是16382。” mysql.com-sysvar_max_prepared_stmt_count这听起来像你只需要一个。
以上是 MySQL准备好的语句没有在使用C++连接器的无限循环中清理 的全部内容, 来源链接: utcz.com/qa/259287.html