Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
När en applikation anropar en ODBC-funktion kör drivrutinen funktionen och returnerar diagnostisk information på två sätt: En returkod indikerar den övergripande framgången eller misslyckandet för en ODBC-funktion, och diagnostiska poster ger detaljerad information om funktionen. Diagnostiska poster inkluderar en headerpost och statusposter. Minst en diagnostisk post, headerposten, returneras även om funktionen lyckas.
Diagnostisk information används vid utvecklingstillfället för att upptäcka programmeringsfel, såsom ogiltiga handtag och syntaxfel i hårdkodade SQL-satser. Den används också under körning för att fånga upp fel och varningar under körning, såsom dataförkortning, regelbrott och syntaxfel i SQL-satser som användaren matar in. Programlogik baseras vanligtvis på returkoder.
Till exempel, efter att en applikation anropar SQLFetch för att hämta raderna i en resultatuppsättning, anger returkoden om slutet på resultatmängden nåddes (SQL_NO_DATA), om några informationsmeddelanden returnerades (SQL_SUCCESS_WITH_INFO), eller om ett fel inträffade (SQL_ERROR).
Om den SQL Server Native Client ODBC-drivrutinen returnerar något annat än SQL_SUCCESS kan applikationen anropa SQLGetDiagRec för att hämta eventuella informations- eller felmeddelanden. Använd SQLGetDiagRec för att scrolla upp och ner i meddelandeuppsättningen om det finns mer än ett meddelande.
Returkoden SQL_INVALID_HANDLE anger alltid ett programmeringsfel och bör aldrig påträffas vid körning. Alla andra returkoder ger körningsinformation, även om SQL_ERROR kan tyda på ett programmeringsfel.
Det ursprungliga Microsoft SQL Server inbyggda API:et, DB-Library för C, tillåter en applikation att installera callback-felhantering och meddelandehanteringsfunktioner som returnerar fel eller meddelanden. Vissa Transact-SQL-satser, såsom PRINT, RAISERROR, DBCC och SET, returnerar sina resultat till DB-Library meddelandehanterarfunktionen istället för till en resultatuppsättning. ODBC API har dock ingen sådan callback-funktion. När den SQL Server Native Client ODBC-drivrutinen upptäcker meddelanden som kommer tillbaka från SQL Server, sätter den ODBC:s returkod till SQL_SUCCESS_WITH_INFO eller SQL_ERROR och returnerar meddelandet som en eller flera diagnostiska poster. Därför måste en ODBC-applikation noggrant testa för dessa returkoder och anropa SQLGetDiagRec för att hämta meddelandedata.
För information om spårningsfel, se Data Access Tracing. För information om förbättringar av felspårning som lagts till i SQL Server 2012 (11.x), se Åtkomst till diagnostisk information i Extended Events Logg.