【发布时间】:2016-12-14 05:22:36
【问题描述】:
我在 VBA 中有一个 ADO 命令对象,它正在运行并从存储过程(在 SQL Server 中)返回值。为了验证 VBA 中的 SP 和命令行,我使用 CopyFromRecordset 方法查看数据,一切正常。
Set ADOComm = New ADODB.Command
With ADOComm
.ActiveConnection = ADOConn
.CommandType = adCmdStoredProc
.CommandText = "GenerateMasterSumIfs"
.Parameters.Append .CreateParameter("ImportFilePath", adVarChar, adParamInput, 100, TextFileSavePath)
End With
Set ADORec = New ADODB.Recordset
Set ADORec = ADOComm.Execute
我现在希望能够使用 FIND 或 GETROWS(例如)导航返回的记录,但记录集似乎没有数据(recordset.RecordCount 返回 -1)。我尝试在网上对此进行研究,发现对游标类型的引用受到限制,具体取决于源(在我的例子中是 SQL Server),但我无法找到我可以理解和使用的解决方案。
所以,具体来说,我的问题是:
- 我能否继续使用 ADO 命令/记录集组合来整理我的数据然后“导航”它?或
- 是否需要使用其他方法运行 SP 才能启用所需的导航?
我不是该领域的专家,因此感谢您耐心等待我的技术描述和任何网站礼仪失礼。
【问题讨论】:
-
你的存储过程中有
SET NOCOUNT ON;吗? -
不是。我尝试将其添加到我的 SP 中,但这对我的情况没有任何影响。但是,我已经解决了我的问题(请参阅我的答案)。不过,感谢您的建议。
标签: sql-server vba stored-procedures