昨天有位久未謀面的老同學,突然問起如何在VB中調(diào)用SQL的存儲過程。
當時因為手上沒有資料,機器上也沒裝SQL,隨即發(fā)了早年寫的一段ASP代碼,也不知道行不行。
抱著負責任的態(tài)度,剛好又有點空閑,便做了個測試:
(說來慚愧,N久沒用VB了,居然不知道怎么加入ADODB類型庫了,就填加了一個ADODC控件,汗顏~```)
Private Sub ExampleButton_Click()
Dim sqlConn As New ADODB.Connection
Dim sqlCmd As New ADODB.Command
Dim myParam As ADODB.Parameter
Dim sqlRs As ADODB.Recordset
Dim sqlCmdStr As String
sqlConn.Open "driver={SQL Server};server=127.0.0.1;database=master;uid=sa;pwd=密碼我是不會隨便告訴別人的啦:)"
sqlCmd.ActiveConnection = sqlConn
sqlCmd.CommandText = "sp_executesql"
sqlCmd.CommandType = adCmdStoredProc
sqlCmdStr = "SELECT * FROM sysmessages WHERE error>=100 AND error<=120"
Set myParam = sqlCmd.CreateParameter("@statement", adBSTR, adParamInput, Len(sqlCmdStr))
myParam.Value = sqlCmdStr
sqlCmd.Parameters.Append myParam
Set sqlRs = sqlCmd.Execute
sqlRs.MoveFirst
While Not sqlRs.EOF
MsgBox sqlRs.Fields(0).Value & ",,," & sqlRs.Fields(3).Value
sqlRs.MoveNext
Wend
End Sub
哈哈,居然成功了(不禁又自我陶醉了一番)。
雖然沒什么技術(shù)含量,不過還是再次申明一下:
其實調(diào)用存儲過程最重要的就是參數(shù)的正確性,比如參數(shù)名稱,參數(shù)類型啊等等。
幸好這些都是有資料可以查的,可以查SQL手冊,或者如果有耐心一點,也可以通過不斷的嘗試得出正確的答案(哈哈,廢話)。