在VBA ADODB中设置NO COUNT ON

时间:2014-05-30 13:42:26

标签: sql vba adodb

经过数小时的挫折,我意识到自己已成为Error Messaging Referencing #Temp Table with ADO-SQLOLEDB

的受害者
  

当您尝试基于创建的#Temp表创建ADO记录集时   在ADO使用SQLOLEDB提供程序调用的存储过程中,   您可能会遇到以下错误消息之一...

解决方案是将SET NOCOUNT ON添加到存储过程,或者在记录集打开时添加到VBA代码。目前我无法将其添加到我的VBA代码中。

MS作为解决方案提供的示例代码如下:

Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "spThatHasTempTable"
cmd.CommandType = adCmdStoredProc 
..


Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
With rs
    Set .ActiveConnection = conn
    .Open "SET NOCOUNT ON"
End With

rs.Open cmd, , , , adCmdStoredProc

这对我有用。但是我觉得设置SET NOCOUNT ON确实应该是Command对象构造的一部分,但我似乎无法弄清楚如何做到这一点。

那么在构建SET NOCOUNT ON对象时如何包含Command

1 个答案:

答案 0 :(得分:0)

你能结合SQL吗?所以你的命令变成了"set nocount on; select * from table"? 我知道在某些情况下你不能拥有多个命令。