经过数小时的挫折,我意识到自己已成为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
?
答案 0 :(得分:0)
你能结合SQL吗?所以你的命令变成了"set nocount on; select * from table"
?
我知道在某些情况下你不能拥有多个命令。