Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

ODBC-Aufruf mit gespeicherter Prozedur fehlgeschlagen – Pass-Through-Abfrage

So erhalten Sie weitere Informationen zur Ursache von „ODBC – Aufruf fehlgeschlagen“. error können wir die DBEngine.Errors durchlaufen Sammlung und prüfen Sie, ob es andere Nachrichten gibt, die etwas aussagekräftiger sein könnten. Zum Beispiel mit dem Code

    qdf.Connect = strConnectionString
    qdf.SQL = " EXEC [dbo].[SAMPLE_TEST]"
    qdf.ReturnsRecords = True
    On Error GoTo oops
    Set rst = qdf.OpenRecordset
    Debug.Print rst!RecordCount
    rst.Close
    Set rst = Nothing
    Exit Sub
oops:
    Dim dbeError As Error
    For Each dbeError In DBEngine.Errors
        Debug.Print "(" & dbeError.Number & "): " & dbeError.Description
    Next
End Sub

möglicherweise sehen wir Folgendes im VBA-Direktfenster:

(229): [Microsoft][ODBC SQL Server Driver][SQL Server]The EXECUTE permission was denied on the object 'SAMPLE_TEST', database 'myDb', schema 'dbo'.
(3146): ODBC--call failed.

Sicher

Die EXECUTE-Berechtigung wurde für das Objekt „SAMPLE_TEST“, Datenbank „myDb“, Schema „dbo“ verweigert.

ist wesentlich hilfreicher als nur

ODBC--Aufruf fehlgeschlagen.