sql >> Databáze >  >> RDS >> Sqlserver

Volání ODBC se nezdařilo s uloženou procedurou – předat dotaz

Chcete-li získat další informace o příčině "volání ODBC se nezdařilo." chyba, můžeme procházet DBEngine.Errors kolekce a zjistěte, zda existují další zprávy, které by mohly být trochu popisnější. Například pomocí kódu

    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

v okně VBA Immediate můžeme vidět následující:

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

Určitě

Oprávnění EXECUTE bylo odepřeno pro objekt 'SAMPLE_TEST', databázi 'myDb', schéma 'dbo'.

je mnohem užitečnější než jen

ODBC -- volání se nezdařilo.



  1. Musím v Oracle vytvářet indexy cizích klíčů?

  2. Chyba instalace klienta Oracle – cesta je příliš dlouhá

  3. SQL Server uložené procedury od Oracle®

  4. Proč bych měl v C# používat int místo bajtu nebo short