sql >> Databasteknik >  >> RDS >> Sqlserver

ODBC-anrop misslyckades med lagrad procedur - Skicka igenom förfrågan

För att få mer information om orsaken till ett "ODBC--samtal misslyckades." fel kan vi gå igenom DBEngine.Errors samling och se om det finns andra meddelanden som kan vara lite mer beskrivande. Till exempel med koden

    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

vi kan se följande i VBA Immediate-fönstret:

(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.

Visst

EXECUTE-behörigheten nekades för objektet 'SAMPLE_TEST', databasen 'myDb', schemat 'dbo'.

är betydligt mer användbart än bara

ODBC--samtal misslyckades.



  1. Summa med SQL-server RollUP - men bara sista sammanfattningen?

  2. ORA-00604 ORA-12705

  3. Var klausul för att filtrera rader i MySQL

  4. Hur gör man dejtmatematik som ignorerar årtalet?