在Sql Server 2012中,在使用ALTER添加两个新字段后,当我们尝试在其他查询中再次使用该连接时,我们得到:
错误[HY000] [Microsoft] [ODBC SQL Server驱动程序]连接正忙于另一个hstmt的结果
请注意,我们的连接是使用ODBC连接完成的。
顺便说一句,当我将已经改变的数据库复制到我的DEV机器时,它也会发生。
任何人都知道如何解决这个问题?
答案 0 :(得分:1)
这告诉您在一个连接上无法运行多个活动查询。
单凭它你可以:
答案 1 :(得分:0)
我会在你的ALTER之后检查你正在做一个SQLFreeStmt(SQL_CLOSE)或SQLCloseCursor()。由于yassine __
的上述原因答案 2 :(得分:0)
在为同一个连接构建另一个DataReader
之前,我错误地没有关闭DataReader
。
请注意,垃圾收集器会自动更早地处理DataReader
。
我提到过ALTER TABLE增加了2个新字段。读者没有被GC处理的原因是因为我没有读出所有字段(我读了除2个新字段以外的所有字段)。
收集第一个读者的GC只是运气,直到我添加了这些字段。之后它再也没有收集读者,而是我得到了这个例外。
无论如何,我已经在Finally
区块内关闭了阅读器,现在可以正常使用了。
还有一个谜是在Sql Server 2008和(最肯定的)Access上我没有得到同一场景的例外。但我不确定。