Sql server 无法检索从MS Access ADO中的存储过程返回的记录集
我正在开发一个旧的MS Access(2007)应用程序(维护+更改)。当前的更改涉及将一段代码从Sql server 无法检索从MS Access ADO中的存储过程返回的记录集,sql-server,ms-access,stored-procedures,Sql Server,Ms Access,Stored Procedures,我正在开发一个旧的MS Access(2007)应用程序(维护+更改)。当前的更改涉及将一段代码从select*from更改为调用一个存储过程,该存储过程返回一个简单的表(仅一个varchar列) 以下是MS Access中的代码部分: : Set Conn1 = CurrentProject.Connection Set Cmd1 = New ADODB.Command Cmd1.ActiveConnection = Conn1 Cmd1.CommandText = "p_Labels_Pri
select*from
更改为调用一个存储过程,该存储过程返回一个简单的表(仅一个varchar列)
以下是MS Access中的代码部分:
:
Set Conn1 = CurrentProject.Connection
Set Cmd1 = New ADODB.Command
Cmd1.ActiveConnection = Conn1
Cmd1.CommandText = "p_Labels_Print"
Cmd1.CommandType = adCmdStoredProc
Cmd1.Parameters.Append Cmd1.CreateParameter("@_p_Button_type", adInteger, adParamInput)
Cmd1.Parameters.Append Cmd1.CreateParameter("@_p_Sampling_Request", adInteger, adParamInput)
Cmd1.Parameters.Append Cmd1.CreateParameter("@_p_Place", adVarChar, adParamInput, 16)
Cmd1.Parameters.Append Cmd1.CreateParameter("@_p_Sampler_Code", adVarChar, adParamInput, 16)
Cmd1.Parameters.Append Cmd1.CreateParameter("@_p_Total_Copies", adInteger, adParamInput)
Cmd1.Parameters.Append Cmd1.CreateParameter("@_p_Print_Option", adInteger, adParamInput)
Cmd1.Parameters.Append Cmd1.CreateParameter("@_p_Print_Option", adVarChar, adParamInput, 16)
Cmd1.Parameters(0).Value = 2
Cmd1.Parameters(1).Value = 2878954
Cmd1.Parameters(2).Value = "0C9991"
Cmd1.Parameters(3).Value = 89029
Cmd1.Parameters(4).Value = 10
Cmd1.Parameters(5).Value = 1
Cmd1.Parameters(6).Value = "S-SAPTEST"
Set Rs1 = Cmd1.Execute()
' Process results from recordset, then close it.
:
Rs1.Close
:
现在,我知道调用过程时使用了正确的参数(和值,因为我正在从过程中记录到一个调试表中,我看到所有参数都被接收到,并且返回的表正好包含10条记录(如参数“4”所规定)
返回的表如下所示:
+------------------------------------------------------+
| One_Sticker |
+------------------------------------------------------+
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
|WQSticker03@!@2878954@!@KRG000@!@BlaBla-1@!@S-SAPTEST |
+------------------------------------------------------+
在MS Access中,我在语句Rs1处设置了一个断点。关闭并在Rs1
上监视。然后,在Rs1
中挖掘结果时,没有任何内容(意味着在Rs1的监视窗口中字段>计数0
)
我是否遗漏了接收结果的内容(比如以某种方式定义了除Rs1以外的变量?我发现了问题。声明:
SET NOCOUNT ON ;
在调用的存储过程开始时缺少。添加后,一切都按预期开始工作