2017-06-20 83 views
0

我正在使用舊的MS-Access(2007)應用程序(維護+更改)。當前的變化涉及將一段代碼從select * from更改爲調用返回簡單表的存儲過程(僅一個varchar列)。ms訪問ADO - 無法檢索從存儲過程返回的記錄集

下面是代碼的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           | 
+------------------------------------------------------+ 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected]PTEST | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
|[email protected][email protected]@[email protected]@[email protected]@[email protected] | 
+------------------------------------------------------+ 

在MS-Access中,我在語句Rs1.CloseRs1上設置了一個斷點。然後,當挖掘Rs1內的結果時,沒有任何內容(意味着在Rs1的觀察窗口內爲Fields > Count 0)。

我是否錯過了某些東西(例如,以某種方式定義除Rs1之外的變量)以接收結果?

非常感謝您的建議。

回答

0

我發現了這個問題。聲明:

SET NOCOUNT ON ; 

在被調用存儲過程的開始處丟失。一旦添加,一切都開始按預期工作。

相關問題