Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der ODBC-Treiber für SQL Server Native Client gibt die folgenden zusätzlichen Diagnosefelder für SQLGetDiagField. Diese Felder unterstützen umfassende Fehlerberichte für SQL Server-Anwendungen und sind in allen Diagnosedatensätzen verfügbar, die bei verbundenen ODBC-Verbindungshandles und ODBC-Anweisungshandles generiert werden. Die Felder werden in "sqlncli.h" definiert.
| Diagnosedatensatzfeld | BESCHREIBUNG |
|---|---|
| SQL_DIAG_SS_LINE | Meldet die Zeilennummer einer gespeicherten Prozedur, die einen Fehler generiert. Der Wert von SQL_DIAG_SS_LINE ist nur dann sinnvoll, wenn SQL_DIAG_SS_PROCNAME einen Wert zurückgibt. Der Wert wird als nicht signierte 16-Bit-Ganzzahl zurückgegeben. |
| SQL_DIAG_SS_MSGSTATE | Der Status einer Fehlermeldung. Informationen zum Status der Fehlermeldung finden Sie unter RAISERROR. Der Wert wird als signierte 32-Bit-Ganzzahl zurückgegeben. |
| SQL_DIAG_SS_PROCNAME | Der Name der gespeicherten Prozedur, die ggf. einen Fehler generiert. Der Wert wird als Zeichenfolge zurückgegeben. Die Länge der Zeichenfolge (in Zeichen) hängt von der Version des SQL Server ab. Sie kann durch Aufrufen von SQLGetInfo bestimmt werden, die den Wert für SQL_MAX_PROCEDURE_NAME_LEN anfordert. |
| SQL_DIAG_SS_SEVERITY | Der Schweregrad der zugeordneten Fehlermeldung. Der Wert wird als signierte 32-Bit-Ganzzahl zurückgegeben. |
| SQL_DIAG_SS_SRVNAME | Der Name des Servers, auf dem der Fehler aufgetreten ist. Der Wert wird als Zeichenfolge zurückgegeben. Die Länge der Zeichenfolge (in Zeichen) wird durch das SQL_MAX_SQLSERVERNAME-Makro in sqlncli.h definiert. |
SQL Server-spezifische Diagnosefelder, die Zeichendaten, SQL_DIAG_SS_PROCNAME und SQL_DIAG_SS_SRVNAME enthalten, geben diese Daten als null-beendete, ANSI- oder Unicode-Zeichenfolgen an den Client zurück. Bei Bedarf sollte die Anzahl der Zeichen durch die Zeichenbreite angepasst werden. Alternativ kann ein tragbarer C-Datentyp wie TCHAR oder SQLTCHAR verwendet werden, um die richtige Programmvariablenlänge sicherzustellen.
Der ODBC-Treiber für SQL Server Native Client meldet die folgenden zusätzlichen dynamischen Funktionscodes, die die letzte versuchte SQL Server-Anweisung identifizieren. Der code der dynamischen Funktion wird in der Kopfzeile (Datensatz 0) des Diagnosedatensatzes zurückgegeben und steht daher für jede Ausführung (erfolgreich oder nicht) zur Verfügung.
| Dynamischer Funktionscode | Quelle |
|---|---|
| SQL_DIAG_DFC_SS_ALTER_DATABASE | ALTER DATABASE-Anweisung |
| SQL_DIAG_DFC_SS_CHECKPOINT | CHECKPOINT-Anweisung |
| SQL_DIAG_DFC_SS_CONDITION | Fehler in den WHERE- oder HAVING-Klauseln einer Anweisung. |
| SQL_DIAG_DFC_SS_CREATE_DATABASE | CREATE DATABASE-Anweisung |
| SQL_DIAG_DFC_SS_CREATE_DEFAULT | CREATE DEFAULT-Anweisung |
| SQL_DIAG_DFC_SS_CREATE_PROCEDURE | CREATE PROCEDURE-Anweisung |
| SQL_DIAG_DFC_SS_CREATE_RULE | CREATE RULE-Anweisung |
| SQL_DIAG_DFC_SS_CREATE_TRIGGER | CREATE TRIGGER-Anweisung |
| SQL_DIAG_DFC_SS_CURSOR_DECLARE | DECLARE CURSOR-Anweisung |
| SQL_DIAG_DFC_SS_CURSOR_OPEN | OPEN-Anweisung |
| SQL_DIAG_DFC_SS_CURSOR_FETCH | FETCH-Anweisung |
| SQL_DIAG_DFC_SS_CURSOR_CLOSE | CLOSE-Anweisung |
| SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR | DEALLOCATE-Anweisung |
| SQL_DIAG_DFC_SS_DBCC | DBCC-Anweisung |
| SQL_DIAG_DFC_SS_DENY | DENY-Anweisung |
| SQL_DIAG_DFC_SS_DROP_DATABASE | DROP DATABASE-Anweisung |
| SQL_DIAG_DFC_SS_DROP_DEFAULT | DROP DEFAULT-Anweisung |
| SQL_DIAG_DFC_SS_DROP_PROCEDURE | DROP PROCEDURE-Anweisung |
| SQL_DIAG_DFC_SS_DROP_RULE | DROP RULE-Anweisung |
| SQL_DIAG_DFC_SS_DROP_TRIGGER | DROP TRIGGER-Anweisung |
| SQL_DIAG_DFC_SS_DUMP_DATABASE | BACKUP- oder DUMP DATABASE-Anweisung |
| SQL_DIAG_DFC_SS_DUMP_TABLE | DUMP TABLE-Anweisung |
| SQL_DIAG_DFC_SS_DUMP_TRANSACTION | BACKUP- oder DUMP TRANSACTION-Anweisung. Wird auch für eine CHECKPOINT-Anweisung zurückgegeben, wenn die trunc. log für chkpt. Datenbankoption aktiviert ist. |
| SQL_DIAG_DFC_SS_GOTO | GOTO Control-of-Flow-Anweisung |
| SQL_DIAG_DFC_SS_INSERT_BULK | INSERT BULK-Anweisung |
| SQL_DIAG_DFC_SS_KILL | KILL-Anweisung |
| SQL_DIAG_DFC_SS_LOAD_DATABASE | LOAD- oder RESTORE DATABASE-Anweisung |
| SQL_DIAG_DFC_SS_LOAD_HEADERONLY | LOAD- oder RESTORE HEADERONLY-Anweisung |
| SQL_DIAG_DFC_SS_LOAD_TABLE | LOAD TABLE-Anweisung |
| SQL_DIAG_DFC_SS_LOAD_TRANSACTION | LOAD- oder RESTORE TRANSACTION-Anweisung |
| SQL_DIAG_DFC_SS_PRINT | PRINT-Anweisung |
| SQL_DIAG_DFC_SS_RAISERROR | RAISERROR-Anweisung |
| SQL_DIAG_DFC_SS_READTEXT | READTEXT-Anweisung |
| SQL_DIAG_DFC_SS_RECONFIGURE | RECONFIGURE-Anweisung |
| SQL_DIAG_DFC_SS_RETURN | RETURN Control-of-Flow-Anweisung |
| SQL_DIAG_DFC_SS_SELECT_INTO | SELECT INTO-Anweisung |
| SQL_DIAG_DFC_SS_SET | SET-Anweisung (generic, all options) |
| SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT | SET IDENTITY_INSERT-Anweisung |
| SQL_DIAG_DFC_SS_SET_ROW_COUNT | SET ROWCOUNT-Anweisung |
| SQL_DIAG_DFC_SS_SET_STATISTICS | SET STATISTICS IO- oder SET STATISTICS TIME-Anweisungen |
| SQL_DIAG_DFC_SS_SET_TEXTSIZE | SET TEXTSIZE-Anweisung |
| SQL_DIAG_DFC_SS_SETUSER | SETUSER-Anweisung |
| SQL_DIAG_DFC_SS_SET_XCTLVL | SET TRANSACTION ISOLATION LEVEL-Anweisung |
| SQL_DIAG_DFC_SS_SHUTDOWN | SHUTDOWN-Anweisung |
| SQL_DIAG_DFC_SS_TRANS_BEGIN | BEGIN TRAN-Anweisung |
| SQL_DIAG_DFC_SS_TRANS_COMMIT | COMMIT TRAN-Anweisung |
| SQL_DIAG_DFC_SS_TRANS_PREPARE | Vorbereiten des Commits einer verteilten Transaktion |
| SQL_DIAG_DFC_SS_TRANS_ROLLBACK | ROLLBACK TRAN-Anweisung |
| SQL_DIAG_DFC_SS_TRANS_SAVE | SAVE TRAN-Anweisung |
| SQL_DIAG_DFC_SS_TRUNCATE_TABLE | TRUNCATE TABLE-Anweisung |
| SQL_DIAG_DFC_SS_UPDATE_STATISTICS | UPDATE STATISTICS-Anweisung |
| SQL_DIAG_DFC_SS_UPDATETEXT | UPDATETEXT-Anweisung |
| SQL_DIAG_DFC_SS_USE | USE-Anweisung |
| SQL_DIAG_DFC_SS_WAITFOR | WAITFOR Control-of-Flow-Anweisung |
| SQL_DIAG_DFC_SS_WRITETEXT | WRITETEXT-Anweisung |
SQLGetDiagField- und Table-Valued Parameter
SQLGetDiagField kann verwendet werden, um zwei Diagnosefelder abzurufen: SQL_DIAG_SS_TABLE_COLUMN_NUMBER und SQL_DIAG_SS_TABLE_ROW_NUMBER. Anhand dieser Felder können Sie ermitteln, welcher Wert den Fehler oder die Warnung verursacht hat, die dem Diagnosedatensatz zugeordnet ist.
Weitere Informationen zu Tabellenwertparametern finden Sie unter "Table-Valued Parameters (ODBC)".