這是開發(fā)版中關(guān)于調(diào)用存儲(chǔ)過程傳遞參數(shù)的例程,供大家參考
- Public Sub TestParameter
- ' 這段代碼演示:
- ' 1. 創(chuàng)建一個(gè)使用輸入/輸出參數(shù)的存儲(chǔ)過程
- ' 2. 創(chuàng)建參數(shù)并調(diào)用存儲(chǔ)過程
- ' 3. 顯示結(jié)果并刪除這個(gè)存儲(chǔ)過
- Dim conn As ADODB.Connection
- Dim Param As ADODB.Parameter
- Dim Com As ADODB.Command
- Dim strConn As String
- ' 給連接字符串變量賦值
- strConn = "PROVIDER=SQLOLEDB;SERVER=(local);User Id=sa;Password=;DATABASE=pubs"
- ' 建立連接對(duì)象
- Set conn = New ADODB.Connection
- ' 給連接對(duì)象賦予連接字符串并打開連接
- conn.ConnectionString = strConn
- conn.Open strConn
- ' 建立新的命令對(duì)象
- Set Com = New ADODB.Command
- ' 在PUBS數(shù)據(jù)庫中創(chuàng)建一個(gè)新的存儲(chǔ)過程
- Com.CommandText = "Create Procedure sp_ReturnsOutput @authorid " & _
- "varchar(11),@result Varchar(20) OUTPUT As Select @result " _
- & "= (Select au_fname from authors Where Au_id = @authorId)"
- Com.ActiveConnection = conn
- Com.Execute
- ' 現(xiàn)在已經(jīng)創(chuàng)建兩個(gè)參數(shù): 一為輸入,一為輸出
- ' 在ADO對(duì)象中創(chuàng)建輸入?yún)?shù)
- Set Param = Com.CreateParameter("AuId", adVarChar, adParamInput, 11)
- Param.Value = "172-32-1176"
- Com.Parameters.Append Param
- ' 在ADO對(duì)象中創(chuàng)建輸出參數(shù)
- Set Param = Com.CreateParameter("Return", adVarChar, adParamReturnValue, 20)
- Com.Parameters.Append Param
- ' 注:當(dāng)創(chuàng)建參數(shù)時(shí),你必須包括參數(shù)的大小(長度)
- ' 加載命令對(duì)象的SQL字符串
- Com.CommandText = "sp_ReturnsOutput"
- Com.CommandType = adCmdStoredProc
- ' 調(diào)用
- Com.Execute
- ' 顯示結(jié)果
- MsgBox "The first name of the author with an SS of " & _
- Com.Parameters(0).Value & " is " & Com.Parameters(1).Value
- ' 刪除存儲(chǔ)過程
- Com.CommandText = "Drop Procedure Sp_ReturnsOutput"
- Com.CommandType = adCmdText
- Com.Execute
- conn.Close
- End Sub
|