Python 检查pyodbc连接是否打开或关闭
我经常遇到这样的错误:Python 检查pyodbc连接是否打开或关闭,python,mysql,odbc,pyodbc,Python,Mysql,Odbc,Pyodbc,我经常遇到这样的错误:编程错误:光标的连接已关闭。 在我尝试执行查询之前,是否有方法检查我正在使用的连接是否已关闭 我正在考虑编写一个包装器来执行查询。首先,它将检查连接是否已关闭,如果已关闭,它将重新连接。这是一种可取的方法吗?您也可以使用鸭式键入。使用您需要的并捕获异常。99%的情况下,它可能是正常的。包装器是个好主意,但我不知道有什么API可以可靠地检查连接是否关闭 因此,解决方案应该是这样的: for retry in range(3): try: ... exe
编程错误:光标的连接已关闭。
在我尝试执行查询之前,是否有方法检查我正在使用的连接是否已关闭
我正在考虑编写一个包装器来执行查询。首先,它将检查连接是否已关闭,如果已关闭,它将重新连接。这是一种可取的方法吗?您也可以使用
鸭式键入。使用您需要的并捕获异常。99%的情况下,它可能是正常的。包装器是个好主意,但我不知道有什么API可以可靠地检查连接是否关闭
因此,解决方案应该是这样的:
for retry in range(3):
try:
... execute query ...
return # Stop on success
except e:
if is_connection_broken_error(e):
reconnect()
continue
raise
raise # throw if the retry fails too often
另一个选项是检查是否可以获取光标(不管怎样,很多次这都是您希望从连接中获得的),否则重新初始化连接。它看起来像这样:
try:
cursor = conn.cursor()
except e:
if e.__class__ == pyodbc.ProgrammingError:
conn == reinit()
cursor = conn.cursor()
这不是一个好主意。pyodbc.ProgrammingError在很多情况下都会出现。使用它,您将看到许多重要的错误消息。