2010-06-30 209 views
0

感謝dretzlaff17的回答,沒有返回記錄在記錄(VB6)

我giveing細節..........從SQL Server

SP 2005不返回recordSet(VB6)記錄中的記錄返回-1。如果使用查詢和記錄集訪問記錄,記錄集將填充記錄。

使用相同的連接字符串。我檢查得當,在VB6中爲命令對象編寫的代碼沒有問題,那麼錯在哪裏?

有什麼別的東西,我們必須在訪問SQL Server的做2005

我的代碼是這樣

Dim Conn as new ADODB.Connection 

Dim RS as new ADODB.RecordSet 

Dim CMD as new ADODB.Command 

Conn.Open "Connection String" ' Its working 

CMD.ActiveConnection = Conn 

CMD.CommandType = adCmdStoredProc 

CMD.CommandText = "SPName" 

Set RS = CMD.Execute 

Debug.Print RS.RecordCount ' /* here result is -1 means CMD is not executing and RS is not filling with records */ 

and if use 

RS.Open "Select query", conn 'then this record set is filling with records. 

我也通過RS(光標)位置值設置爲客戶端檢查和SP很簡單,只有選擇查詢出現在SP no中的I/O參數中。

還有一件東西記錄存在數據庫表中不是空的。

這個您的想法討好

感謝

回答

0

你能告訴你存儲過程的文本? VB6是舊的東西,可能你只需要把

set nocount on 

開頭的程序或打開可能連接後,即使執行這個作爲查詢。 如果它不能幫助簡化試圖存儲過程的東西肯定是像 工作創建存儲過程作爲

set nocount on 
select 1 
1

RS.RecordCount'/ *此處的結果是-1 意味着CMD不執行和RS是 未填滿記錄

不,它不包含:它表示默認遊標類型不支持RecordCount屬性。

由於內容的更好的測試,請嘗試:

Debug.Print RS.GetString 
0

如果你想記錄計數,它通常是最好這樣做:

set RS = new ADODB.Recordset 
RS.Open cmd, , adOpenDynamic, adLockReadOnly 
If Not RS.EOF then Debug.Print RS.RecordCount 
RS.Close 
相關問題