文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
文本框中光标位置的获得
用VB导入导出你的IE收藏夹
VB应用程序访问SQL Server方法探讨
VB访问SQL Server数据库技术全揭密
自动上网抓数据的机器人
自己的IE——用VB制作浏览器
VB中如何保存Webbrowser中的整个页面..
在VB中该如何控制其它程序的弹出窗口..
保存webbrowser中的HTML内容
破译动网验证码的简单方法
轻松获取QQ密码
VB.NET获取硬盘序列号的方法
WEBBROWSER 技巧一(收藏)
VB自动登陆网络站点详解(二):Inet..
获取webbrowser控件网页的源码
WebBrowser控件说明
关于用VB做更漂亮的窗体的思考
VB中访问存储过程的几种办法
VB6中改变屏幕的分辨率和刷新频率
VB编写一个能显示百分比的自定义进度..
公农历转换VB类
VB.NET窗口渐淡关闭
使用VB实现邮箱自动注册(二):修改..
VB.NET轻松实现任务栏程序
VB.NET启动外部程序
利用vb实现图片上传
VB实现局域网内的文件传输
VB 一个Function传回多个值
在VB中实现多线程
VB 手机号码编码程序


技术教程 -> VB教程 ->  
VB6.0 调用存储过程的例子(方法一)
来源:转载   人气:831   录入时间:2007-11-8
     打开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
   
   




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987