昨天有位久未谋面的老同学,突然问起如何在VB中调用SQL的存储过程。 当时因为手上没有资料,机器上也没装SQL,随即发了早年写的一段ASP代码,也不知道行不行。 抱着负责任的态度,刚好又有点空闲,便做了个测试: (说来惭愧,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
哈哈,居然成功了(不禁又自我陶醉了一番)。 虽然没什么技术含量,不过还是再次申明一下: 其实调用存储过程最重要的就是参数的正确性,比如参数名称,参数类型啊等等。 幸好这些都是有资料可以查的,可以查SQL手册,或者如果有耐心一点,也可以通过不断的尝试得出正确的答案(哈哈,废话)。 
|