假设您有以下代码:
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# some database actions
cur.close()
conn.close()
# more code below
如果我尝试使用 conn
要么 cur
以后的对象,我怎么能告诉它们已经关闭?我找不到了 .isclosed()
方法或类似的东西。
假设您有以下代码:
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# some database actions
cur.close()
conn.close()
# more code below
如果我尝试使用 conn
要么 cur
以后的对象,我怎么能告诉它们已经关闭?我找不到了 .isclosed()
方法或类似的东西。
你可以包装一个 try, except
声明:
>>> conn = sqlite3.connect('mydb')
>>> conn.close()
>>> try:
... resultset = conn.execute("SELECT 1 FROM my_table LIMIT 1;")
... except sqlite3.ProgrammingError as e:
... print e
Cannot operate on a closed database.
这依赖于 特定于sqlite3的快捷方式。
你可以包装一个 try, except
声明:
>>> conn = sqlite3.connect('mydb')
>>> conn.close()
>>> try:
... resultset = conn.execute("SELECT 1 FROM my_table LIMIT 1;")
... except sqlite3.ProgrammingError as e:
... print e
Cannot operate on a closed database.
这依赖于 特定于sqlite3的快捷方式。
如何确保连接和光标永远不会关闭?
你可以有一个基于状态的程序,你可以保证只在正确的时间调用close()。
或者将它们包装在具有pass实现的其他对象中 close()
。或者添加一个 _isclosed
成员设置 close()
和访问 isclosed()
。