詳細參數ADO.NET建立連接問題
開發環境是ADO.NET建立連接,數據庫是SQL Sever 2000 在進入正題之前,先講點別的,如何在VC中連接Sybase數據庫,
連接字符竄為,_bstr_t strCnn(\"Driver={Sybase System 11};Srvr=RRRRR;Uid=RRR_Mao_bb1;Pwd=user2\");這里,RRRRR是數據庫的名稱,已經在Sybase->sdedit中設定好了RRR_Mao_bb1 和 user2分別是用戶名和密碼。#t#
不過使用這種基于ODBC的連接使用一段時間以后,就出現問題了,ADO.NET建立連接出現了“Catastrophic failure”的錯誤,微軟的解釋是為了使我們的調用存儲過程的例子有更多的通用性,我建了有輸入參數,有輸出參數,有一個返回記錄集,有一個返回值的存儲過程,如下:
- CREATE PROCEDURE sp_1 (
- @pin1 int ,
- @pin2 CHAR(10),
- @pout1 int OUTPUT,
- )
- AS
- BEGIN
- declare @retval int
- select @pout1 = @pin1 + 100
- select @pout2 = left( ltrim(rtrim(@pin2)) + \'123\' , 10)
- select Num,Name,Date
- from TABLE1
- select @retval = 1236
- return @retval
- END
對于這個SP來說,ADO.NET建立連接這些個參數是@RETURN_VALUE(int ,返回值)@pin1 ( int ,輸入 ) @pin2 ( char(10) ,輸入 )@pout1 (int ,輸入/輸出)@pout1 ( char(10) , 輸入/輸出) @RETURN_VALUE是第0個參數,@pin1是第1個,依此類推以上信息可以在SQL 的查詢分析器中看到,注意,這些參數的順序很重要調用的前期準備這就不多說了,什么import 庫阿,ADO.NET建立連接阿,什么的,不多說了。
假定連接是pConn注意,ADO.NET建立連接這里要把pConn設定成adUseClient型pConn->CursorLocation =adUseClient;下面我要貼具體的代碼了,為了精簡所貼的代碼,我把所有的捕獲異常都沒貼出來(try catch)使用Refresh的方法來調用。