connection有返回码
用withevents定义Connection并通过willexecute事件检测

解决方案 »

  1.   

    一般来说不出错就执行成功Err.Number <> 0 ...
      

  2.   

    请问willexecute什么时候发生?ExecuteComplete事件可不可以检测
      

  3.   

    ExecuteComplete不能正确检测结果的正确性
      

  4.   

    感谢您使用微软产品。您可以在ADODB.Connection 的ExecuteComplete事件发生时判断SQL语句是否执行成功的信息,并获取错误信息。如果此时不对错误进行处理,将发生Rum-time Error,您可以使用On Error Statement来处理错误,防止程序的崩溃。如果SQL语句的执行没有错误,ADO.connection对象的execute方法的第二个参数是存储返回值的变量,反映了受影响的记录个数,您可以通过这个参数变量获得SQL语句执行结果的信息。如下例:Private WithEvents cases As ADODB.Connection   ‘为了获取对象的事件,需在声明对象时加WithEvents关键字。Private Sub cases_ExecuteComplete(ByVal RecordsAffected As Long, _
    ByVal pError As ADODB.Error, _
    adStatus As ADODB.EventStatusEnum, _
     ByVal pCommand As ADODB.Command, _
    ByVal pRecordset As ADODB.Recordset, _
     ByVal pConnection As ADODB.Connection)
    If adStatus = adStatusErrorsOccurred Then
           MsgBox pError.Description
    Else
         MsgBox "exec success"
    End If
    End SubPrivate Sub Command2_Click()
        Set cases = CreateObject("ADODB.Connection")
        cases.Open ("testdb1")    
        Dim num As Integer    
        exsql = "delete from Table1 where ID>0"    
        On Error GoTo errl    
        cases.Execute exsql, num    
        Text2.Text = num    
        Exit Sub
        
    errl:    
        MsgBox Err.Description    
        Exit SubEnd Sub每次执行与ADO有关的操作时,所有provider errors都被加入connection的Errors属性,您也可以由此获得错误信息。修改on error的处理代码如下:
    errl:    
        For Each Err In cases.Errors
          
          strError = "Error #" & Err.Number & vbCr & _
             "   " & Err.Description & vbCr & _
             "   (Source: " & Err.Source & ")" & vbCr & _
             "   (SQL State: " & Err.SQLState & ")" & vbCr & _
             "   (NativeError: " & Err.NativeError & ")" & vbCr
          If Err.HelpFile = "" Then
             strError = strError & "   No Help file available"
          Else
             strError = strError & _
                "   (HelpFile: " & Err.HelpFile & ")" & vbCr & _
                "   (HelpContext: " & Err.HelpContext & ")" & _
                vbCr & vbCr
          End If
             
          Debug.Print strError
       Next
       Exit Sub详细信息请参考:
    Execute Method (ADO Connection)
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthcnnexecute.aspExecuteComplete Event
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdevtexecutecomplete.aspOn Error Statement
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmonerror.aspErrors Collection
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcolerrors.aspDescription, HelpContext, HelpFile, NativeError, Number, Source, and SQLState Properties Example (VB)
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdprodescriptionx.asp
    -  微软全球技术中心 VB技术支持
    本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。