如果不关闭 pyodbc 连接会发生什么?

mwo*_*ods 9 python sql pyodbc

只是想知道如果在 pyodbc 中没有正确关闭连接会发生什么。

另外,我需要在连接之前关闭游标吗?

在我的特定用例中,我在自定义数据库类中包含了一个关闭连接的调用 .__del__()方法,但没有显式调用 close。

什么是最佳实践?

Fli*_*rPA 9

连接(及其关联的游标)在被删除时会自动关闭,因此它会自行清理。但是,如果您在多个地方进行连接,则需要明确关闭。此外,为了更加 Pythonic,明确总是更好。

另请注意:在不提交更改的情况下关闭连接将导致自动隐式回滚。

有关更多信息和参考:

https://github.com/mkleehammer/pyodbc/wiki/Connection#close

  • 回应我自己的评论,值得注意的是,在 `with ...` 块(“上下文管理器”)中使用 pyodbc 的 `connection` 对象**不会**在该块的末尾自动关闭连接。我刚刚发现,在测试一些涉及 SQL Server 连接的代码时。有关 pyodbc 和上下文管理的更多讨论,请参阅 GutHub 上的 [本期](https://github.com/mkleehammer/pyodbc/issues/43)。 (4认同)