Freigeben über


SQLGetDiagField

Der SQL Server-Native Client-ODBC-Treiber legt die folgenden zusätzlichen Diagnosefelder für SQLGetDiagField fest. Diese Felder unterstützen eine umfangreiche Fehlerberichterstellung für SQL Server-Anwendungen und sind in allen Diagnosedatensätzen verfügbar, die für verbundene 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 SQL Server-Version 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 an den Client mit NULL-Terminierung oder als ANSI- bzw. Unicode-Zeichenfolgen 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 SQL Server Native Client ODBC-Treiber meldet die folgenden zusätzlichen dynamischen Funktionscodes, die die zuletzt 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 Dieser Wert wird auch für eine CHECKPOINT-Anweisung zurückgegeben, wenn die Datenbankoption trunc. log on chkpt. 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 (in SQL Server 2008 hinzugefügte) 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 Tabellenwertparameter (ODBC).

Siehe auch

Konzepte

Andere Ressourcen