1

我正在使用 soci 使我的应用程序与数据库交互,目前我使用 MySQL 服务器进行测试。我已将 SOCI 包装到简单的类中,我在类的 Connect 方法中调用 session.open()

m_session.open(soci::mysql, connString);

然后在析构函数中我调用 close 方法

m_session.close();

但是当我使用该类几次(创建和销毁该类的对象)时,我发现 soci 无法连接到 MySQL 服务器,错误连接太多。我很困惑,因为我在析构函数上调用了 close 方法,我想 soci 应该释放连接。检查 soci 文档我看不到除了 close() 之外的任何东西。

有没有办法强制 soci::session 释放连接?

4

2 回答 2

0

我发现我的析构函数没有被调用,因为我的一个类方法中有未处理的异常。我重新设计了我的课程并处理了这个异常。现在一切都很好!

于 2012-06-26T12:26:08.080 回答
0

您可以通过 soci::session.close() 函数关闭 SOCI:Session

于 2018-09-04T09:25:19.147 回答