SQLGetDiagField

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytický platformní systém (PDW)

Nativní klientský ovladač ODBC pro SQL Server specifikuje následující dodatečná diagnostická pole pro SQLGetDiagField. Tato pole podporují bohaté hlášení chyb pro aplikace SQL Server a jsou dostupná ve všech diagnostických záznamech generovaných na propojených ODBC spojovacích rukojeti a ODBC příkazových rukojetích. Pole jsou definována v sqlncli.h.

Pole diagnostického záznamu Description
SQL_DIAG_SS_LINE Hlásí číslo řádku uložené procedury, která generuje chybu. Hodnota SQL_DIAG_SS_LINE má smysl pouze tehdy, pokud SQL_DIAG_SS_PROCNAME vrátí hodnotu. Hodnota se vrací jako neznaménkové, 16bitové celé číslo.
SQL_DIAG_SS_MSGSTATE Stav chybové zprávy. Pro informace o stavu chybové zprávy viz RAISERROR. Hodnota se vrací jako podepsané 32bitové celé číslo.
SQL_DIAG_SS_PROCNAME Název uložené procedury, která generuje chybu, pokud je to vhodné. Hodnota se vrací jako řetězec znaků. Délka řetězce (v znacích) závisí na verzi SQL Server. Lze ji určit zavoláním SQLGetInfo a požadavkem na hodnotu pro SQL_MAX_PROCEDURE_NAME_LEN.
SQL_DIAG_SS_SEVERITY Úroveň závažnosti související chybové zprávy. Hodnota se vrací jako podepsané 32bitové celé číslo.
SQL_DIAG_SS_SRVNAME Název serveru, na kterém chyba nastala. Hodnota se vrací jako řetězec znaků. Délka řetězce (v znacích) je definována SQL_MAX_SQLSERVERNAME makrom v sqlncli.h.

SQL Server-specifická diagnostická pole, která obsahují znaková data, SQL_DIAG_SS_PROCNAME a SQL_DIAG_SS_SRVNAME, vracejí tato data klientovi jako null terminated, ANSI nebo Unicode řetězce. Pokud je to nutné, počet znaků by měl být upraven podle šířky znaku. Alternativně lze použít přenosný typ dat v C, jako je TCHAR nebo SQLTCHAR, aby bylo zajištěno správné proměnné délky programu.

Nativní klientský ODBC ovladač SQL Server hlásí následující dodatečné dynamické kódy funkcí, které identifikují poslední pokus o příkaz SQL Server. Dynamický kód funkce se vrací v hlavičce (záznam 0) sady diagnostických záznamů a je tedy dostupný při každém provedení (úspěšném či neúspěšném).

Kód dynamické funkce Zdroj
SQL_DIAG_DFC_SS_ALTER_DATABASE Prohlášení ALTER DATABASE
SQL_DIAG_DFC_SS_CHECKPOINT Příkaz CHECKPOINT
SQL_DIAG_DFC_SS_CONDITION Chyba vznikla v klauzulích WHERE nebo HAVING ve výrocích.
SQL_DIAG_DFC_SS_CREATE_DATABASE Prohlášení CREATE DATABASE
SQL_DIAG_DFC_SS_CREATE_DEFAULT Prohlášení CREATE DEFAULT
SQL_DIAG_DFC_SS_CREATE_PROCEDURE Prohlášení CREATE PROCEDURE
SQL_DIAG_DFC_SS_CREATE_RULE Prohlášení CREATE RULE
SQL_DIAG_DFC_SS_CREATE_TRIGGER Prohlášení CREATE TRIGGER
SQL_DIAG_DFC_SS_CURSOR_DECLARE Příkaz DECLARE CURSOR
SQL_DIAG_DFC_SS_CURSOR_OPEN Příkaz OPEN
SQL_DIAG_DFC_SS_CURSOR_FETCH Příkaz FETCH
SQL_DIAG_DFC_SS_CURSOR_CLOSE PŘÍKAZ CLOSE
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR Výkaz DEALLOCATE
SQL_DIAG_DFC_SS_DBCC Prohlášení DBCC
SQL_DIAG_DFC_SS_DENY Prohlášení DENY
SQL_DIAG_DFC_SS_DROP_DATABASE Prohlášení DROP DATABASE
SQL_DIAG_DFC_SS_DROP_DEFAULT Prohlášení DROP DEFAULT
SQL_DIAG_DFC_SS_DROP_PROCEDURE Prohlášení DROP PROCEDURE
SQL_DIAG_DFC_SS_DROP_RULE Prohlášení DROP RULE
SQL_DIAG_DFC_SS_DROP_TRIGGER Prohlášení DROP TRIGGER
SQL_DIAG_DFC_SS_DUMP_DATABASE BACKUPnebo příkaz DUMP DATABASE
SQL_DIAG_DFC_SS_DUMP_TABLE Příkaz DUMP TABLE
SQL_DIAG_DFC_SS_DUMP_TRANSACTION BACKUP nebo příkaz DUMP TRANSACTION. Také vráceno pro příkaz CHECKPOINT, pokud je zapnutá možnost trunc. log v databázi chkpt.
SQL_DIAG_DFC_SS_GOTO Příkaz GOTO control-of-flow
SQL_DIAG_DFC_SS_INSERT_BULK INSERT Výkaz BULK
SQL_DIAG_DFC_SS_KILL Prohlášení KILL
SQL_DIAG_DFC_SS_LOAD_DATABASE LOAD nebo RESTOREDATABASE příkaz
SQL_DIAG_DFC_SS_LOAD_HEADERONLY LOAD nebo RESTORE HEADERONLY příkaz
SQL_DIAG_DFC_SS_LOAD_TABLE Příkaz LOAD TABLE
SQL_DIAG_DFC_SS_LOAD_TRANSACTION Příkaz LOAD nebo RESTORE TRANSACTION
SQL_DIAG_DFC_SS_PRINT Prohlášení PRINT
SQL_DIAG_DFC_SS_RAISERROR Příkaz RAISERROR
SQL_DIAG_DFC_SS_READTEXT Příkaz READTEXT
SQL_DIAG_DFC_SS_RECONFIGURE Příkaz RECONFIGURE
SQL_DIAG_DFC_SS_RETURN Příkaz RETURN pro řízení toku
SQL_DIAG_DFC_SS_SELECT_INTO Příkaz SELECT INTO
SQL_DIAG_DFC_SS_SET SET Příkaz (obecné, všechny možnosti)
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT Prohlášení SET IDENTITY_INSERT
SQL_DIAG_DFC_SS_SET_ROW_COUNT Prohlášení SET ROWCOUNT
SQL_DIAG_DFC_SS_SET_STATISTICS SET SET STATISTICS IO nebo SETSET STATISTICS TIME výroky
SQL_DIAG_DFC_SS_SET_TEXTSIZE Prohlášení SET TEXTSIZE
SQL_DIAG_DFC_SS_SETUSER Prohlášení SETUSER
SQL_DIAG_DFC_SS_SET_XCTLVL Prohlášení SET TRANSACTION ISOLATION LEVEL
SQL_DIAG_DFC_SS_SHUTDOWN Prohlášení o uzavření
SQL_DIAG_DFC_SS_TRANS_BEGIN ZAČÁTEK prohlášení TRAN
SQL_DIAG_DFC_SS_TRANS_COMMIT COMMIT TRAN prohlášení
SQL_DIAG_DFC_SS_TRANS_PREPARE Připravte se na potvrzení distribuované transakce
SQL_DIAG_DFC_SS_TRANS_ROLLBACK ROLLBACK TRAN příkaz
SQL_DIAG_DFC_SS_TRANS_SAVE SAVE TRAN prohlášení
SQL_DIAG_DFC_SS_TRUNCATE_TABLE Prohlášení TRUNCATE TABLE
SQL_DIAG_DFC_SS_UPDATE_STATISTICS UPDATE UPDATE STATISTICS Prohlášení
SQL_DIAG_DFC_SS_UPDATETEXT Příkaz UPDATETEXT
SQL_DIAG_DFC_SS_USE Příkaz USE
SQL_DIAG_DFC_SS_WAITFOR WAITFOR příkaz řízení toku
SQL_DIAG_DFC_SS_WRITETEXT Příkaz WRITETEXT

SQLGetDiagField a Table-Valued parametry

SQLGetDiagField lze použít k získání dvou diagnostických polí: SQL_DIAG_SS_TABLE_COLUMN_NUMBER a SQL_DIAG_SS_TABLE_ROW_NUMBER. Tato pole vám pomáhají určit, která hodnota způsobila chybu nebo varování spojené s diagnostickým záznamem.

Pro více informací o tabulkových parametrech viz Table-Valued Parametry (ODBC).