Freigeben über


SQLGetDiagField

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

Der ODBC-Treiber für SQL Server Native Client gibt die folgenden zusätzlichen Diagnosefelder für SQLGetDiagField an. 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 verursacht. Der Wert von SQL_DIAG_SS_LINE ist nur aussagekräftig, wenn SQL_DIAG_SS_PROCNAME einen Wert zurückgibt. Der Wert wird als 16-Bit-Ganzzahl ohne Vorzeichen zurückgegeben.
SQL_DIAG_SS_MSGSTATE Der Status einer Fehlermeldung. Informationen über den Status der Fehlermeldung finden Sie unter RAISERROR. Der Wert wird als 32-Bit-Ganzzahl mit Vorzeichen zurückgegeben.
SQL_DIAG_SS_PROCNAME Der Name der gespeicherten Prozedur, die einen Fehler generiert, falls zutreffend. 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 bestimmt werden, indem die SQLGetInfo -Funktion, die den Wert für SQL_MAX_PROCEDURE_NAME_LEN anfordert, aufgerufen wird.
SQL_DIAG_SS_SEVERITY Der Schweregrad der zugehörigen Fehlermeldung. Der Wert wird als 32-Bit-Ganzzahl mit Vorzeichen 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 in sqlncli.h durch das SQL_MAX_SQLSERVERNAME-Makro 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. Falls notwendig sollte die Anzahl von Zeichen der Zeichenbreite entsprechend angepasst werden. Alternativ kann die korrekte Länge der Programmvariablen mit einem übertragbaren C-Datentyp wie TCHAR oder SQLTCHAR sichergestellt werden.

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 dynamische Funktionscode wird im Header (Datensatz 0) des Diagnosedatensatzes zurückgegeben und ist daher bei jeder Ausführung verfügbar (unabhängig davon, ob diese erfolgreich ist oder nicht).

Dynamischer Funktionscode Quelle
SQL_DIAG_DFC_SS_ALTER_DATABASE ALTER DATABASE-Anweisung
SQL_DIAG_DFC_SS_CHECKPOINT CHECKPOINT-Anweisung
SQL_DIAG_DFC_SS_CONDITION Ein Fehler ist in der WHERE-Klausel oder der HAVING-Klausel einer Anweisung aufgetreten.
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 auf chkpt. Datenbankoption aktiviert ist.
SQL_DIAG_DFC_SS_GOTO GOTO-Anweisung zur Ablaufsteuerung
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-Anweisung zur Ablaufsteuerung
SQL_DIAG_DFC_SS_SELECT_INTO SELECT INTO-Anweisung
SQL_DIAG_DFC_SS_SET SET-Anweisung (generisch, alle Optionen)
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-Anweisung
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, um einen Commit für eine verteilte Transaktion auszuführen
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-Anweisung zur Ablaufsteuerung
SQL_DIAG_DFC_SS_WRITETEXT WRITETEXT-Anweisung

SQLGetDiagField und Tabellenwertparameter

SQLGetDiagField kann verwendet werden, um zwei Diagnosefelder abzurufen: SQL_DIAG_SS_TABLE_COLUMN_NUMBER und SQL_DIAG_SS_TABLE_ROW_NUMBER. Mithilfe dieser Felder können Sie bestimmen, welcher Wert den Fehler oder die Warnung im Zusammenhang mit dem Diagnosedatensatz verursacht hat.

Weitere Informationen zu Tabellenwertparametern finden Sie unter "Table-Valued Parameters (ODBC)".

Weitere Informationen

SQLGetDiagField-Funktion
ODBC-API-Implementierungsdetails