我使用soci来使我的应用程序与数据库交互,目前我使用MySQL服务器进行测试。我将SOCI封装到简单的类中,在这个类的Connect方法中调用session.open()
m_session.open(soci::mysql, connString);然后在析构函数中调用close方法
m_session.close();但是当我多次使用这个类(创建和销毁这个类的对象)时,我发现soci无法连接到MySQL服务器,并出现连接过多的错误。我很困惑,因为我在析构函数上调用了close方法,我认为soci应该释放连接。检查soci文档,除了close(),我什么也看不到。
有没有办法强制soci::session释放连接?
发布于 2012-06-26 20:26:08
我发现我的析构函数不知何故没有被调用,因为我的一个类方法中有一个未处理的异常。我重新设计了我的类,并处理了那个异常。现在一切都好了!
发布于 2018-09-04 17:25:19
您可以通过soci::session.close()函数关闭SOCI:Session
https://stackoverflow.com/questions/10893907
复制相似问题