Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Nieudane wywołanie ODBC z procedurą składowaną — zapytanie przekazujące

Aby uzyskać więcej informacji o przyczynie błędu „ODBC — wywołanie nie powiodło się”. błąd możemy zapętlić przez DBEngine.Errors kolekcji i zobacz, czy istnieją inne komunikaty, które mogą być nieco bardziej opisowe. Na przykład z kodem

    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

możemy zobaczyć następujące elementy w oknie VBA Immediate:

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

Oczywiście

Odmówiono uprawnienia EXECUTE do obiektu „SAMPLE_TEST”, bazy danych „myDb”, schematu „dbo”.

jest znacznie bardziej pomocny niż tylko

ODBC — wywołanie nie powiodło się.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:różnica między PARTITION BY i GROUP BY

  2. ASIN() Przykłady w SQL Server

  3. Łączenie wartości kolumn w listę rozdzielaną przecinkami

  4. Jak TRY_CONVERT() działa w SQL Server

  5. Jak zacząć korzystać z programu SQL Server na platformie Azure