SQLExecDirect 在死锁时不返回

SQLExecDirect doesn't return when deadlocked

本文关键字:返回 死锁 SQLExecDirect      更新时间:2023-10-16

我有一个C 应用程序通过SQLEXECTIRECT调用存储过程。如果有僵局SQLEXECTECT在解决僵局之前不会返回。

我在.NET世界中读过它可以检测到死锁并引发例外。C /ODBC在僵局中重新控制有什么办法?我怀疑答案是否定的,但我希望我还没有找到一些ODBC功能。

我能想到的唯一工作是启动另一个线程以运行它,并设置了暂停线程返回的时间。

,不,我无法解决僵局。该应用程序正在从我选择的客户的DBS运行查询或存储过程。我只是不希望在僵局的持续时间内无反应。

如果您的ODBC提供商支持异步执行,则可以以这种方式执行操作,ODBC 3.8 甚至支持较旧的3.0轮询的基于事件的通知模式。请注意,除非使用SQLServer的火星之类的东西,您的连接仍然会陷入僵局,它只会允许线程在等待答案时做其他事情。