当SSIS包运行时,我从SQLServer Native Client驱动程序中收到 Connection Busy With Results From Another Command
错误。只有在与SQLServer 2000交谈时。与SQLServer 2005对话的另一个部分似乎总是正常运行。有什么想法吗?
答案 0 :(得分:12)
正如我刚刚发现的,如果您没有启用MARS,这也可能发生在SQL 2005上。我甚至都不知道它默认是禁用的,但确实如此。并确保您使用的是 “NATIVE OLEDB \ SQL Native Client”连接类型。如果您正在使用“OLEDB.1”类型连接(或其他......)MARS甚至不是一个选项,并且您获得了SQL 2000行为,这是令人讨厌的。
您可以通过打开连接属性,然后单击“全部”并在Management Studio中进行搜索来启用MARS。
我知道你的问题早已得到解答,但我只是把它扔进了像我一样被我烧伤的下一个傻瓜。
答案 1 :(得分:5)
今天出现此错误,MS ODBC驱动程序11用于SQL Server for Linux to SQL Server连接。想要帮助下一个搜索者,考虑到这是我搜索时的第一个Google搜索结果。
您需要在/etc/odbc.ini中设置MARS_Connection,如下所示:
[ConnName]
Driver=ODBC Driver 11 for SQL Server
Server=192.168.2.218,1433
Database=DBNameHere
MARS_Connection=yes
说到MS ODBC Linux Driver:它是一个完整的PITA来处理它,但我坚持使用本机解决方案。我经历了太多的墙壁,特别是使用ZF2,但是,每个问题都有我能说的驱动程序的解决方案。只是鼓励人们使用它而不是快速放弃。
答案 2 :(得分:2)
如果有人在使用PHP PDO和ODBC时遇到这个烦人的错误,那么在查询执行后使用closeCursor()
方法。
答案 3 :(得分:1)
Microsoft KB article 822668与此相关:
FIX:“连接正忙于另一个命令的结果”运行链接服务器查询时出现错误消息
症状
在压力条件下,执行链接服务器活动时可能会收到以下错误消息:
Server: Msg 7399, Level 16, State 1, Procedure <storedProcedureName>, Line 18 OLE DB provider 'SQLOLEDB' reported an error. OLE/DB Provider 'SQLOLEDB' ::GetSchemaLock returned 0x80004005: OLE DB provider SQLOLEDB supported the Schema Lock interface, but returned 0x80004005 for GetSchemaLock .]. OLE/DB provider returned message: Connection is busy with results for another command OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ::CreateSession returned 0x80004005.
注意错误的OLE DB源可能会有所不同。但是,错误消息的所有变体都包括文本“连接忙于另一个命令的结果”。
分辨率
要解决此问题,请获取最新的Microsoft SQL Server 2000 Service Pack。
如前所述,SQL Server 2000 Service Pack 4中首先纠正了该问题。
RDA Corp的高级软件工程师Mark Meyerovich的This blog post也提供了一些见解(现已存档,因为原始链接已经死亡):
SQL Server Service Pack升级
在Google上进行快速搜索会显示以下文章(http://support.microsoft.com/kb/822668): FIX:“连接忙于另一个命令的结果”运行链接服务器查询时出现错误消息。
它基本上意味着问题是一个错误,并建议升级到Service Pack 4.我们已经开始使用SQL Server 2000 SP3,并且我们在等式中确实有一些链接服务器,所以我们试一试。升级到SP4后 - 结果相同。
答案 4 :(得分:0)
如果其他人有问题,请提供相关信息。我尝试通过ODBC与嵌入式sql在SQLEXPRESS上通过富士通的NetCobol连接并解决我必须在注册表中更改值的问题
\HKLM\Software\ODBC\ODBC.INI\MyDSN
将MyDSN作为字符串值:
Name - MARS_Connection
Value - Yes
我只是把信息放在这里,如果有帮助的话。