中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
VB6.0 调用存储过程的例子(方法一)
作者:未知 时间:2005-07-27 21:30 出处:CSDN 责编:chinaitpower
              摘要: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


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有