我在 SQL Server (2012) 中有一个 SP。它返回单行...使用 SSMS 验证
exec dbo.cpas_DeleteProjects N'3555,3565'
它返回列中包含记录计数信息的有效行。
从 Access(2007) 开始,我使用 adodb 调用来调用它:
Sub DevolveProjects(ProjectIDs As String)
''
' Looking for a comma-delimited list of project IDs in string form: "34,52,14"
'
Dim cnn As New adodb.Connection
Dim rstReturnValues As adodb.Recordset
cnn.ConnectionString = "Provider=SQLOLEDB;Server=" & CurrentServerName() & ";Initial Catalog=" & CurrentDBName() & ";Integrated Security=SSPI;"
cnn.Open
Set rstReturnValues = cnn.Execute("exec dbo.cpas_DeleteProjects N'" & ProjectIDs & "'")
With rstReturnValues...
问题是,rstReturnValues 已关闭。没有数据。
我已经使用 SQL Profiler 验证了当从上面的 Access 应用程序调用时 sp 正在运行预期的 SQL,并且似乎执行得很好,因此身份验证没有问题。我只是没有填充我的记录集。当我将 SQL Profiler 看到的确切 SQL 语句复制并粘贴到 SSMS 查询中时,它返回的正是我所期望的......
我是否对 .execute 调用进行了错误编码?想法?