什么时候ODBC在执行SQLFreeHandle后关闭连接?

时间:2010-12-01 14:59:46

标签: sql sql-server sockets odbc

此问题与this one有关。

我遇到的问题是我们的应用程序有一个错误,它在SQL上留下了一个未关闭的事务。我确信连接已经与SQLFreeHandle一起发布,但看起来像某种程度上ODBC保持连接打开以重用它。当连接保持打开状态时,事务不会回滚,而且我正在锁定。

有没有办法强制ODBC关闭连接并关闭底层套接字?

提前致谢。

2 个答案:

答案 0 :(得分:2)

听起来connection pooling已启用。 This article描述了如何在驱动程序级别关闭它。

答案 1 :(得分:1)

正如Mark所说,连接池已打开。

通常,在将连接释放回池之前,sql驱动程序的包装器会进行回滚调用。

如果你们已经编写了自己的ODBC驱动程序(或者它的包装器),你可以考虑修改连接dispose / close / release代码,以便在打开事务时进行回滚。