Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytický 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).