我在写程序的时候发现用.UDL文件连接数据库的时候,调存储过程就会报错,用
lsServer = "192.168.10.2"
    lsDatabase = "hefei"
    lsUser = "sa"
    lsPWD = ""    gsConnString = "driver={SQL Server};User ID = " + lsUser + _
        ";Pwd=" & lsPWD + _
        ";Database=" + lsDatabase + _
        ";Server=" + lsServer
    gconnHFRQ.ConnectionString = gsConnString
    gconnHFRQ.Open
方法就没问题。
请问正确地调用存储过程的方法。

解决方案 »

  1.   

    给个示例先MS SQL Server(Northind)dim rs as new adodb.recordset
    rs.open "exec CustOrdersDetail(10250)"
    msgbox rs.recordcount
      

  2.   

    rs.open "exec CustOrdersDetail(10250)", gconnHFRQ,1,1
      

  3.   

    http://blog.csdn.net/online/archive/2004/08/05/66376.aspx
      

  4.   

    With Recordset
         .CommandType=adCmdStoredProc
         .CommandText=存储过程名
         .Open
    End With
    当然如果存储过程需要参数传递的话,你需要为Recordset建立一个Parameters,并指明参数。
      

  5.   

    strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=develop; password=12345;Data Source=ServerName"
      
        pubConn.CursorLocation = adUseClient
        pubConn.Open strConn    strSQL = "exec procInsert_tabxy "
        rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
    很簡單啊!
      

  6.   

    为什么我在用udl的时候会出错?
      

  7.   

    '以一个有两个输入参数和两个输出参数的存储过程为例
    Dim Cmd_Sc As Command  '定义一个command对象,用于执行存储过程
    Set Cmd_Sc = New Command
    Cmd_Sc.ActiveConnection = gconnHFRQ'指定command的连接对象gconnHFRQ
    Cmd_Sc.CommandType = adCmdStoredProc'指定command的命令类型,存储过程adStoredProc  
    Cmd_Sc.CommandText = "删除记帐凭证"   '执行存储过程名称
    Cmd_Sc.Parameters("@xh") = CInt(LV.SelectedItem.Text)  给存储过程的@xh输入参数赋值
    Cmd_Sc.Parameters("@czy") = Yhm '给@czy赋值
    Cmd_Sc.Execute '执行存储过程
    If Cmd_Sc.Parameters("@cgbz") = "0" Then '判断输出参数@cgbz的值
       MsgBox Cmd_Sc.Parameters("@fhxx"), vbCritical '显示输出参数@fhxx的值
    Else
       MsgBox Cmd_Sc.Parameters("@fhxx"), vbInformation
    End If
      

  8.   

    '如果存储过程有返回一个记录集,可定义一个recordset对象进行接收,在执行存储过程之前加入以下语句
    dim Rs as recordset
    set Rs =new recordset
    set rs=Cmd_Sc.execute