中国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-01-10 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

                    VB6.0 调用存储过程的例子(方法二)


     本人推荐使用方法一来取存储过程,当然前提是知道将要使用的参数化命令的详细情况,通过在代码中创建参数,其执行的速度快。

 

如果不知道要使用的参数化命令,本人整理了一份通过使用参数(Parameters)对象来获取存储过程的记录集的内容,但该执行方式速度没有方法一理想。

 

代码整理如下,你可以直接将该代码CopyForm1窗体中进行调试。

其中函数GetDataType可以修改为自己所需的处理方式,在这里所有的代码都是为了测试方便所有,你也可以改为自己所需的相应处理。

 

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 strConnect As String

    Dim strFieldName As String

       

    Dim i As Integer

   

    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"

       

        .Parameters.Refresh         ' 指定ADO实际地与数据源相连

    End With

   

    ' 通过Parameters对象,填充输入参数

    For Each ADOPrm In ADOCmd.Parameters

        If ADOPrm.Direction = adParamInput Then

           

ErrDataType:

            On Error Resume Next

            ADOPrm.Value = InputBox("存储过程参数名称:" & ADOPrm.Name & vbCrLf & _

                "该参数数据类型:" & GetDataType(ADOPrm.Type), "请输入参数值", "")

            If Err <> 0 Then

                If MsgBox("所输入的参数与该参数数据类型不符,请重新输入!取消将退出存储过程的调用!", vbOKCancel, "警告") = vbCancel Then

                    Exit Sub

                End If

                Err.Clear

                GoTo ErrDataType

            End If

            On Error GoTo 0

           

        End If

    Next

   

    On Error GoTo ErrHandler

    Set ADORs = ADOCmd.Execute

   

    If Not (ADORs Is Nothing) Then

        If Not ADORs.EOF Then

            Do Until ADORs.EOF

                For i = 0 To ADORs.Fields.Count - 1

                    strFieldName = ADORs.Fields(i).Name

                    Debug.Print "" & ADORs(strFieldName) & Space(4)

                Next

                Debug.Print

               

                ADORs.MoveNext

            Loop

        End If

    End If

   

 

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

        MsgBox strError

    Next

 

    objCon.Errors.Clear

End Sub

 

Function GetDataType(ByRef DataType As DataTypeEnum) As String

    Select Case DataType

        Case DataTypeEnum.adArray

            GetDataType = "DataTypeEnum.adArray"

        Case DataTypeEnum.adBigInt

            GetDataType = "DataTypeEnum.adBigInt"

        Case DataTypeEnum.adBinary

            GetDataType = "DataTypeEnum.adBinary"

        Case DataTypeEnum.adBoolean

            GetDataType = "DataTypeEnum.adBoolean"

        Case DataTypeEnum.adBSTR

            GetDataType = "DataTypeEnum.adBSTR"

        Case DataTypeEnum.adChapter

            GetDataType = "DataTypeEnum.adChapter"

        Case DataTypeEnum.adChar

            GetDataType = "DataTypeEnum.adChar"

        Case DataTypeEnum.adCurrency

            GetDataType = "DataTypeEnum.adCurrency"

        Case DataTypeEnum.adDate

            GetDataType = "DataTypeEnum.adDate"

        Case DataTypeEnum.adDBDate

            GetDataType = "DataTypeEnum.adDBDate"

        Case DataTypeEnum.adDBTime

            GetDataType = "DataTypeEnum.adDBTime"

        Case DataTypeEnum.adDBTimeStamp

            GetDataType = "DataTypeEnum.adDBTimeStamp"

        Case DataTypeEnum.adDecimal

            GetDataType = "DataTypeEnum.adDecimal"

        Case DataTypeEnum.adDouble

            GetDataType = "DataTypeEnum.adDouble"

        Case DataTypeEnum.adEmpty

            GetDataType = "DataTypeEnum.adEmpty"

        Case DataTypeEnum.adError

            GetDataType = "DataTypeEnum.adError """

        Case DataTypeEnum.adFileTime

            GetDataType = "DataTypeEnum.adFileTime """

        Case DataTypeEnum.adGUID

            GetDataType = "DataTypeEnum.adGUID"

        Case DataTypeEnum.adIDispatch

            GetDataType = "DataTypeEnum.adIDispatch"

        Case DataTypeEnum.adInteger

            GetDataType = "DataTypeEnum.adInteger"

        Case DataTypeEnum.adIUnknown

            GetDataType = "DataTypeEnum.adIUnknown"

        Case DataTypeEnum.adLongVarBinary

            GetDataType = "DataTypeEnum.adLongVarBinary"

        Case DataTypeEnum.adLongVarChar

            GetDataType = "DataTypeEnum.adLongVarChar"

        Case DataTypeEnum.adLongVarWChar

            GetDataType = "DataTypeEnum.adLongVarWChar"

        Case DataTypeEnum.adNumeric

            GetDataType = "DataTypeEnum.adNumeric"

        Case DataTypeEnum.adPropVariant

            GetDataType = "DataTypeEnum.adPropVariant"

        Case DataTypeEnum.adSingle

            GetDataType = "DataTypeEnum.adSingle"

        Case DataTypeEnum.adSmallInt

            GetDataType = "DataTypeEnum.adSmallInt"

        Case DataTypeEnum.adTinyInt

            GetDataType = "DataTypeEnum.adTinyInt"

        Case DataTypeEnum.adUnsignedBigInt

            GetDataType = "DataTypeEnum.adUnsignedBigInt"

        Case DataTypeEnum.adUnsignedInt

            GetDataType = "DataTypeEnum.adUnsignedInt"

        Case DataTypeEnum.adUnsignedSmallInt

            GetDataType = "DataTypeEnum.adUnsignedSmallInt"

        Case DataTypeEnum.adUnsignedTinyInt

            GetDataType = "DataTypeEnum.adUnsignedTinyInt"

        Case DataTypeEnum.adUserDefined

            GetDataType = "DataTypeEnum.adUserDefined"

        Case DataTypeEnum.adVarBinary

            GetDataType = "DataTypeEnum.adVarBinary"

        Case DataTypeEnum.adVarChar

            GetDataType = "DataTypeEnum.adVarChar"

        Case DataTypeEnum.adVariant

            GetDataType = "DataTypeEnum.adVariant"

        Case DataTypeEnum.adVarNumeric

            GetDataType = "DataTypeEnum.adVarNumeric"

        Case DataTypeEnum.adVarWChar

            GetDataType = "DataTypeEnum.adVarWChar"

        Case DataTypeEnum.adWChar

            GetDataType = "DataTypeEnum.adWChar"

        Case Else

            GetDataType = "无法获取数据类型"

    End Select

End Function

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