获取MS Access ADO混合查询的完整MS SQL Server错误消息详细信息

时间:2019-03-14 14:29:57

标签: sql-server ms-access

我正在使用ADO执行查询:

Dim connLocal As ADODB.Connection

    Set connLocal = CurrentProject.Connection

    strSQL = "INSERT INTO dbo_tbl_ErrorLog SELECT tbl_ErrorLog.* FROM tbl_ErrorLog;"

    On Error GoTo ErrorSQL
    connLocal.Execute strSQL
    .....
ErrorSQL:
    lErrNo = Err.Number
    strErrDesc = Err.Description
    If InStr(1, strErrDesc, "ODBC") Then
        Dim i As Long
        Dim strErr As String
        For i = 0 To connLocal.Errors.Count - 1
            strErrDesc = strErrDesc & vbCrLf & connRemote.Errors(i).Number & " - " & connLocal.Errors(i).Description
        Next i
    End If
    .....

在查询中,表dbo_tbl_ErrorLog是链接的MS SQL表tbl_ErrorLog-链接的MS Access表。

在SQL查询错误的情况下,我会收到错误消息:

  

-2147467259-ODBC-调用失败。

当我尝试获取错误详细信息时,集合connLocal.Errors仅包含一项“ ODBC--调用失败”。在混合查询的情况下是否可以检索完整的错误详细信息?

1 个答案:

答案 0 :(得分:1)

不幸的是,通过ADO,据我所知还没有。

Access数据库引擎不会将错误从ODBC数据源传播到ADO。

您的ADO连接是Access数据库引擎的一个,并且仅接收它引起的错误。

如果需要跟踪此特定的错误,可以通过enabling ODBC tracing来完成用于将Access连接到SQL Server的ODBC连接。跟踪日志应包括SQL Server引发的所有错误,以及Access用于将数据移至SQL Server的查询。

如果您有足够的权限,还可以使用传递查询或与SQL Server的单独ADO连接,在引发错误后使用sp_readerrorlog查询错误日志。