4
只是想知道如果连接没有在pyodbc中正确关闭会发生什么。如果你不关闭pyodbc连接会发生什么?
另外,我需要在连接之前关闭光标吗?
在我的特殊用例中,我包含了一个调用来关闭.__del__()
方法中的自定义数据库类中的连接,但不显式调用close。
什么是最佳实践?
只是想知道如果连接没有在pyodbc中正确关闭会发生什么。如果你不关闭pyodbc连接会发生什么?
另外,我需要在连接之前关闭光标吗?
在我的特殊用例中,我包含了一个调用来关闭.__del__()
方法中的自定义数据库类中的连接,但不显式调用close。
什么是最佳实践?
连接(及其关联的游标)在被删除时会自动关闭,因此它会自行清理。但是,如果您要连接多个地方,则需要明确关闭。此外,要更Pythonic,它是总是更好明确。
另请注意:在不提交更改的情况下关闭连接将导致自动隐式回滚。
有关详细信息,并参考:
GAH,你是绝对正确的,我的手指穿过得到。这是我在早上第一件事情时回答问题所得到的结果。不能忘记PEP-20! https://www.python.org/dev/peps/pep-0020/现在解决。 – FlipperPA
在我看到的其他问题中,建议使用'with'块来自动关闭和清理文件句柄之类的东西。数据库连接也被认为是很好的(“最好的”?)练习吗? –
回应我自己的评论,值得注意的是,在'with ...'block(“context manager”)中使用pyodbc'connection'对象不会自动关闭该块末尾的连接。我刚刚发现,在测试涉及SQL Server连接的代码时。有关pyodbc和上下文管理的更多讨论,请参阅GutHub上的[此问题](https://github.com/mkleehammer/pyodbc/issues/43)。 –