【发布时间】:2023-04-01 13:43:02
【问题描述】:
我在 WSGI python web 应用程序中使用 SQLAlchemy 来查询数据库。如果我做两个并发请求,第二个请求总是抛出异常,SQL Server 声明
[24000] [FreeTDS][SQL Server]Invalid cursor state (0) (SQLExecDirectW)
不幸的是,我似乎无法使用缓存来阻止对数据库的其他请求。有没有其他方法可以解决这个问题?理想情况下使用原生 python 库(即不依赖另一个 python 模块)?
我唯一能想到的是使用线程来锁定进行数据库查询的函数,但我担心这会降低应用程序的速度。
还有什么可以做的吗?这是配置问题吗?
我在 Centos 5.9 服务器上使用 FreeTDS v0.91,连接到 MS SQL Server 2008。
webapp 基于 Paste。
【问题讨论】:
-
想知道您是否曾就如何解决这种情况得出结论。我遇到了同样的事情,在执行查询之后,任何以下查询都会给出错误Invalid cursor state (0) (SQLExecDirectW)。此外,我注意到第一次似乎没有失败的查询执行返回的 ResultProxy 的行数为 -1。
-
我确实解决了它,但不记得如何解决了。很抱歉,我忽略了在这里发布答案。
标签:
python
sql-server
sqlalchemy
freetds
database-concurrency
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:运行并发请求时获取“无效游标状态 (0)”(SQLAlchemy 和 wsgi/python) - Python技术站