多线程pyodbc连接

时间:2018-07-09 16:17:02

标签: python sql multithreading pyodbc

我正在尝试在多个线程中使用pyodbc连接。我收到以下错误:Connection is busy with results for another command (0) (SQLExecDirectW)')。我也尝试设置MultipleActiveResultSets=yes;并获得了相同的结果。

我真的不想为每个线程或查询都创建一个连接。我也不想使用锁来序列化所有线程的查询。

我先是使用驱动程序“ SQL Server”,然后运往“ SQL Server Native Client 11.0”。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

由于这个问题只是在寻求建议而不是一个有力的答案,所以这是我的:

首先,我建议为每个创建的线程创建一个新连接。

或者,如果您可以终止当前正在执行的操作,可以在重新使用连接之前尝试使用cursor.cancel()。

此外,在快速搜索之后,我发现了与此问题相关的对Multiple Active Result Sets的多个引用。如果您的数据库支持它,请尝试在连接字符串中添加“ MultipleActiveResultSets = True”。

我希望这些建议之一可以帮助您到达需要的地方!