这是一段VB执行ORACLE FUNCTION的代码,执行之后通过异常捕捉到的错误:"多步OLE DB操作产生错误.如果可能,请检查每个OLE DB的状态值,没有工作被完成",请大家告诉一下是什么愿意啊.急呀    代码如下:     PONO = "H63091602"
    InDate = 20060512
    Qty = 12500
    Location = "AA12"
    BillNo = "DD01"
    User = "panepan"
    Computer = "itkpanhaiping"
    '函数调用
    Dim ErrMsg As String, RTN As Integer
    Dim CsmoreRs As New ADODB.Recordset
    Dim Cmd As New ADODB.Command
    With Cmd
        .ActiveConnection = CsmoreConn
        .CommandType = adCmdText        .CommandText = "{CALL SOLID_SINPUT(?)}"
        .Parameters.Append .CreateParameter("SP_SSJNO", adVarChar, adParamInput, 15, PONO) '采购NO
        .Parameters.Append .CreateParameter("SP_UKEBI", adInteger, adParamInput, 8, InDate)  '收货日
        .Parameters.Append .CreateParameter("SP_UKEJSU", adInteger, adParamInput, 8, Qty)   '收货数量
        .Parameters.Append .CreateParameter("SP_ZIKLOC", adVarChar, adParamInput, 5, Location)   '库位
        .Parameters.Append .CreateParameter("SP_NOHSNO", adVarChar, adParamInput, 15, BillNo)   '交货单NO
        .Parameters.Append .CreateParameter("SP_CRTUSR", adVarChar, adParamInput, 20, User)   '用户名
        .Parameters.Append .CreateParameter("SP_CRTTERM", adVarChar, adParamInput, 20, Computer)   '电脑名
        .Parameters.Append .CreateParameter("SP_PROCMES", adVarChar, adParamOutput, 200, ErrMsg)  '错误信息
        .Parameters.Append .CreateParameter("RTN", adNumeric, adParamReturnValue, 8, RTN)    '返回值
    End With
    Set CsmoreRs = Cmd.Execute
'    MsgBox "RTN=" & RTN & "  ErrMsg=" & ErrMsg
    If RTN = 0 Then
        MsgBox "成功!"
    Else
        MsgBox ErrMsg
    End If
    Set CsmoreRs = Nothing
    Set Cmd = Nothing

解决方案 »

  1.   

    回复Leftie
       数据库不存在两条相同记录的.存在相同记录时,在过程中也有判断的.回复lzheng2001
       你说到的问题我确认过了,没有超过长度的。
       在网上看到的该异常也大部分和你说的一样,特意确认过此问题的
      

  2.   

    先不要在vb中执行这个函数,你直接在orcale上执行,看有没有错误! 如果有证明是ORACLE FUNCTION 本身的问题
      

  3.   

    Oracle下执行没有问题的。单步调试是Set CsmoreRs = Cmd.Execute这一句错误啊