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

回到顶部