正文

VB6.0 调用存储过程的例子(方法一)2005-06-26 13:39:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/leafage/2125.html

分享到:

VB6.0 调用存储过程的例子(方法一) 类型:转载                 VB6.0 调用存储过程的例子(方法一)             (说明:以下代码摘自微软的MSDN,经过测试没问题。使用该方法的前提条件是必须知道将要使用的参数化命令的详细情况。) 打开Form1窗体,Copy以下的代码到窗体中,该段代码将测试存储过程ADOTestRPE的返回值、输入参数及输出参数,测试的过程中,可能需要修改链接字符串。 Sub CreateParms()     Dim ADOCmd As New ADODB.Command     Dim ADOPrm As New ADODB.Parameter     Dim ADOCon As ADODB.Connection     Dim ADORs As ADODB.Recordset     Dim sParmName As String     Dim strConnect As String     Dim rStr As String         On Error GoTo ErrHandler         strConnect = "driver={SQL Server};server=(local);uid=sa;pwd=;database=pubs"         Set ADOCon = New ADODB.Connection     With ADOCon         .Provider = "MSDASQL"         .CursorLocation = adUseServer  'Must use Server side cursor.         .ConnectionString = strConnect         .Open     End With         Set ADOCmd.ActiveConnection = ADOCon     With ADOCmd         .CommandType = adCmdStoredProc         .CommandText = "ADOTestRPE"     End With         'Parameter 0 is the stored procedure Return code.     sParmName = "Return"     Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, _       adParamReturnValue, , 0)     ADOCmd.Parameters.Append ADOPrm     ADOCmd.Parameters(sParmName).Value = -1         'Parameter 1 is the setting for the stored procedure Output     ' parameter.     sParmName = "Output"     Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, _       adParamOutput)     ADOCmd.Parameters.Append ADOPrm     ADOCmd.Parameters(sParmName).Value = 999         'Parameter 2     sParmName = "R1Num"     'Number of rows to return in Resultset 1.     Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, _       adParamInput)     ADOCmd.Parameters.Append ADOPrm     ADOCmd.Parameters(sParmName).Value = 1         'Parameter 3     sParmName = "P1Num"     'Number of PRINT statements in Resultset 1.     Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, _      adParamInput)     ADOCmd.Parameters.Append ADOPrm     ADOCmd.Parameters(sParmName).Value = 0         'Parameter 4     sParmName = "E1Num"     'Number of RAISERROR statements in Resultset                             '1.     Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, _       adParamInput)     ADOCmd.Parameters.Append ADOPrm     ADOCmd.Parameters(sParmName).Value = 0         'Parameter 5     sParmName = "R2Num"     'Number of rows to return in Resultset 2.     Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, _       adParamInput)     ADOCmd.Parameters.Append ADOPrm     ADOCmd.Parameters(sParmName).Value = 2         'Parameter 6     sParmName = "P2Num"     'Number of PRINT statements in Resultset 2.     Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, _       adParamInput)     ADOCmd.Parameters.Append ADOPrm     ADOCmd.Parameters(sParmName).Value = 0         'Parameter 7     sParmName = "E2Num"     'Number of RAISERROR statements in Resultset                             ' 2.     Set ADOPrm = ADOCmd.CreateParameter(sParmName, adInteger, _      adParamInput)     ADOCmd.Parameters.Append ADOPrm     ADOCmd.Parameters(sParmName).Value = 0         Set ADORs = ADOCmd.Execute         Do While (Not ADORs Is Nothing)         If ADORs.State = adStateClosed Then Exit Do         While Not ADORs.EOF             For i = 0 To ADORs.Fields.Count - 1                 rStr = rStr & " : " & ADORs(i)             Next i             Debug.Print Mid(rStr, 3, Len(rStr))             ADORs.MoveNext             rStr = ""         Wend         Debug.Print "----------------------"         Set ADORs = ADORs.NextRecordset     Loop         Debug.Print "Return: " & ADOCmd.Parameters("Return").Value     Debug.Print "Output: " & ADOCmd.Parameters("Output").Value         GoTo Shutdown ErrHandler:     Call ErrHandler(ADOCon)     Resume Next Shutdown:     Set ADOCmd = Nothing     Set ADOPrm = Nothing     Set ADORs = Nothing     Set ADOCon = Nothing End Sub Private Sub Command1_Click()     Call CreateParms End Sub Sub ErrHandler(objCon As Object)     Dim ADOErr As ADODB.Error     Dim strError As String     For Each ADOErr In objCon.Errors         strError = "Error #" & ADOErr.Number & vbCrLf & ADOErr.Description _             & vbCr & _             "   (Source: " & ADOErr.Source & ")" & vbCr & _             "   (SQL State: " & ADOErr.SQLState & ")" & vbCr & _             "   (NativeError: " & ADOErr.NativeError & ")" & vbCr         If ADOErr.HelpFile = "" Then             strError = strError & "   No Help file available" & vbCr & vbCr         Else             strError = strError & "   (HelpFile: " & ADOErr.HelpFile & ")" _                 & vbCr & "   (HelpContext: " & ADOErr.HelpContext & ")" & _                 vbCr & vbCr         End If                 Debug.Print strError     Next     objCon.Errors.Clear End Sub

阅读(3167) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册