gpt4 book ai didi

c++ - 死锁时 SQLExecDirect 不返回

转载 作者:行者123 更新时间:2023-11-28 04:52:49 25 4
gpt4 key购买 nike

我有一个 C++ 应用程序通过 SQLExecDirect 调用存储过程。如果存在死锁,则在解决死锁之前,SQLExecDirect 不会返回。

我在 .net 世界中读到它可以检测死锁并抛出异常。 C++/ODBC 有什么方法可以在死锁时重新获得控制权吗?我怀疑答案是否定的,但我希望有一些我还没有找到的 ODBC 功能。

我能想到的唯一解决方法是启动另一个线程来运行它,并为线程返回设置超时。

不,我无法解决僵局。此应用程序正在从我的客户选择的数据库中运行查询或存储过程。我只是不希望它在僵局期间没有响应。

最佳答案

如果您的 ODBC 提供程序支持异步执行,您可以那样执行操作,ODBC 3.8+ 甚至支持基于事件的通知模式,而不是旧的 3.0 仅轮询。请注意,除非使用 SQLServer 的 MARS 之类的东西,否则您的连接仍将处于死锁状态,它只是允许线程在等待答案时做其他事情。

关于c++ - 死锁时 SQLExecDirect 不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47800492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com