sql >> Database teknologi >  >> RDS >> Sqlserver

ODBC-opkald mislykkedes med lagret procedure - Send forespørgsel igennem

For at få flere oplysninger om årsagen til et "ODBC--opkald mislykkedes." fejl kan vi gå gennem DBEngine.Errors indsamling og se, om der er andre meddelelser, der måske er lidt mere beskrivende. For eksempel 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 muligvis se følgende i VBA Immediate-vinduet:

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

Helt sikkert

EXECUTE-tilladelsen blev nægtet på objektet 'SAMPLE_TEST', databasen 'myDb', skemaet 'dbo'.

er betydeligt mere nyttigt end bare

ODBC--opkald mislykkedes.



  1. Hvordan man fremskynder indlæsning af data fra oracle sql til pandas df

  2. Hvad vil det sige at undslippe en streng?

  3. Databasen opdateres ikke automatisk med MySQL og Python

  4. Sådan fungerer GREATEST() i MariaDB