我使用C#.NET ODBC连接从iSeries(AS/400)数据库检索数据。如果文件和过程没有在iSeries端正确升级,ODBC调用将导致级别检查错误。不幸的是,ODBC驱动程序和iSeries之间的握手似乎有缺陷,ODBC调用只是挂起。
在.NET端更改连接和命令超时值不会影响调用,调用似乎永远挂起。
在这种情况下,有没有办法强制暂停?
或者有没有一种方法可以强制终止ODBC调用(即从另一个等待固定时间的线程)并引发异常?
我不确定你的问题是什么,听起来可能是ODBC驱动程序中的一个错误。但是,ODBC确实通过语句属性SQL_ATTR_ASYNC_ENABLE定义异步行为,并且有一个API SQLCancel来取消操作。