Freigeben über


SQLGetDiagField

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)".

Siehe auch

SQLGetDiagField-Funktion
ODBC-API-Implementierungsdetails