Partager via


SQLGetDiagField

Le pilote ODBC SQL Server Native Client spécifie les champs diagnostics supplémentaires suivants pour SQLGetDiagField. Ces champs prennent en charge les rapports d’erreurs enrichis pour les applications SQL Server et sont disponibles dans tous les enregistrements diagnostics générés sur les handles de connexion ODBC connectés et les handles d’instructions ODBC. Les champs sont définis dans sqlncli.h.

Champ d'enregistrement de diagnostic Description
SQL_DIAG_SS_LINE Signale le numéro de ligne d'une procédure stockée qui génère une erreur. La valeur de SQL_DIAG_SS_LINE est explicite uniquement si SQL_DIAG_SS_PROCNAME retourne une valeur. La valeur est retournée en tant qu'entier 16 bits non signé.
SQL_DIAG_SS_MSGSTATE État d'un message d'erreur. Pour plus d’informations sur l’état du message d’erreur, consultez RAISERROR. La valeur est retournée en tant qu'entier 32 bits signé.
SQL_DIAG_SS_PROCNAME Nom de la procédure stockée qui génère une erreur, le cas échéant. La valeur est retournée en tant que chaîne de caractères. La longueur de la chaîne (en caractères) dépend de la version du SQL Server. Il peut être déterminé en appelant SQLGetInfo en demandant la valeur pour SQL_MAX_PROCEDURE_NAME_LEN.
SQL_DIAG_SS_SEVERITY Niveau de gravité du message d'erreur associé. La valeur est retournée en tant qu'entier 32 bits signé.
SQL_DIAG_SS_SRVNAME Nom du serveur sur lequel l'erreur s'est produite. La valeur est retournée en tant que chaîne de caractères. La longueur de la chaîne (en caractères) est définie par la macro SQL_MAX_SQLSERVERNAME dans sqlncli.h.

SQL Server champs de diagnostic spécifiques qui contiennent des données de caractères, SQL_DIAG_SS_PROCNAME et SQL_DIAG_SS_SRVNAME, retournent ces données au client sous forme de chaînes Null terminées, ANSI ou Unicode. Si nécessaire, le nombre de caractères doit être ajusté par la largeur des caractères. Vous pouvez aussi utiliser un type de données C portable tel que TCHAR ou SQLTCHAR pour garantir une longueur variable de programme correcte.

Le pilote ODBC SQL Server Native Client signale les codes de fonction dynamique supplémentaires suivants qui identifient la dernière tentative d’instruction SQL Server. Le code de fonction dynamique est retourné dans l'en-tête (enregistrement 0) du jeu d'enregistrements de diagnostic. Il est par conséquent disponible sur chaque exécution (réussi ou pas).

Code de fonction dynamique Source
SQL_DIAG_DFC_SS_ALTER_DATABASE ALTER DATABASE, instruction
SQL_DIAG_DFC_SS_CHECKPOINT CHECKPOINT (instruction)
SQL_DIAG_DFC_SS_CONDITION Une erreur est survenue dans les clauses WHERE ou HAVING d'une instruction.
SQL_DIAG_DFC_SS_CREATE_DATABASE CREATE DATABASE, instruction
SQL_DIAG_DFC_SS_CREATE_DEFAULT CREATE DEFAULT (instruction)
SQL_DIAG_DFC_SS_CREATE_PROCEDURE CREATE PROCEDURE (instruction)
SQL_DIAG_DFC_SS_CREATE_RULE CREATE RULE (instruction)
SQL_DIAG_DFC_SS_CREATE_TRIGGER CREATE TRIGGER (instruction)
SQL_DIAG_DFC_SS_CURSOR_DECLARE DECLARE CURSOR (instruction)
SQL_DIAG_DFC_SS_CURSOR_OPEN OPEN (instruction)
SQL_DIAG_DFC_SS_CURSOR_FETCH FETCH (instruction)
SQL_DIAG_DFC_SS_CURSOR_CLOSE CLOSE (instruction)
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR DEALLOCATE (instruction)
SQL_DIAG_DFC_SS_DBCC DBCC (instruction)
SQL_DIAG_DFC_SS_DENY DENY (instruction)
SQL_DIAG_DFC_SS_DROP_DATABASE DROP DATABASE (instruction)
SQL_DIAG_DFC_SS_DROP_DEFAULT DROP DEFAULT (instruction)
SQL_DIAG_DFC_SS_DROP_PROCEDURE DROP PROCEDURE (instruction)
SQL_DIAG_DFC_SS_DROP_RULE DROP RULE (instruction)
SQL_DIAG_DFC_SS_DROP_TRIGGER DROP TRIGGER (instruction)
SQL_DIAG_DFC_SS_DUMP_DATABASE BACKUP ou DUMP DATABASE (instruction)
SQL_DIAG_DFC_SS_DUMP_TABLE DUMP TABLE (instruction)
SQL_DIAG_DFC_SS_DUMP_TRANSACTION BACKUP ou DUMP TRANSACTION (instruction) Également retourné pour une instruction CHECKPOINT si l’option de base de données trunc. log on chkpt. est activée.
SQL_DIAG_DFC_SS_GOTO Instruction de contrôle de flux GOTO
SQL_DIAG_DFC_SS_INSERT_BULK INSERT BULK (instruction)
SQL_DIAG_DFC_SS_KILL KILL (instruction)
SQL_DIAG_DFC_SS_LOAD_DATABASE LOAD ou RESTORE DATABASE (instruction)
SQL_DIAG_DFC_SS_LOAD_HEADERONLY LOAD ou RESTORE HEADERONLY (instruction)
SQL_DIAG_DFC_SS_LOAD_TABLE LOAD TABLE (instruction)
SQL_DIAG_DFC_SS_LOAD_TRANSACTION LOAD ou RESTORE TRANSACTION (instruction)
SQL_DIAG_DFC_SS_PRINT PRINT (instruction)
SQL_DIAG_DFC_SS_RAISERROR RAISERROR (instruction)
SQL_DIAG_DFC_SS_READTEXT READTEXT (instruction)
SQL_DIAG_DFC_SS_RECONFIGURE RECONFIGURE (instruction)
SQL_DIAG_DFC_SS_RETURN Instruction de contrôle de flux RETURN
SQL_DIAG_DFC_SS_SELECT_INTO SELECT INTO, instruction
SQL_DIAG_DFC_SS_SET SET (instruction) (générique, toutes les options)
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT SET IDENTITY_INSERT (instruction)
SQL_DIAG_DFC_SS_SET_ROW_COUNT SET ROWCOUNT (instruction)
SQL_DIAG_DFC_SS_SET_STATISTICS SET STATISTICS IO ou SET STATISTICS TIME (instructions)
SQL_DIAG_DFC_SS_SET_TEXTSIZE SET TEXTSIZE (instruction)
SQL_DIAG_DFC_SS_SETUSER SETUSER (instruction)
SQL_DIAG_DFC_SS_SET_XCTLVL SET TRANSACTION ISOLATION LEVEL (instruction)
SQL_DIAG_DFC_SS_SHUTDOWN SHUTDOWN (instruction)
SQL_DIAG_DFC_SS_TRANS_BEGIN BEGIN TRAN (instruction)
SQL_DIAG_DFC_SS_TRANS_COMMIT COMMIT TRAN (instruction)
SQL_DIAG_DFC_SS_TRANS_PREPARE Préparation de la validation d'une transaction distribuée
SQL_DIAG_DFC_SS_TRANS_ROLLBACK ROLLBACK TRAN (instruction)
SQL_DIAG_DFC_SS_TRANS_SAVE SAVE TRAN (instruction)
SQL_DIAG_DFC_SS_TRUNCATE_TABLE TRUNCATE TABLE (instruction)
SQL_DIAG_DFC_SS_UPDATE_STATISTICS UPDATE STATISTICS (instruction)
SQL_DIAG_DFC_SS_UPDATETEXT UPDATETEXT (instruction)
SQL_DIAG_DFC_SS_USE USE (instruction)
SQL_DIAG_DFC_SS_WAITFOR Instruction de contrôle de flux WAITFOR
SQL_DIAG_DFC_SS_WRITETEXT WRITETEXT (instruction)

SQLGetDiagField et paramètres table

SQLGetDiagField peut être utilisé pour récupérer deux champs de diagnostic : SQL_DIAG_SS_TABLE_COLUMN_NUMBER et SQL_DIAG_SS_TABLE_ROW_NUMBER. Ces champs vous aident à déterminer la valeur ayant provoqué l'erreur ou l'avertissement associé à l'enregistrement de diagnostic.

Pour plus d’informations sur les paramètres table, consultez Paramètres table (ODBC).

Voir aussi

Fonction SQLGetDiagField
Détails de l’implémentation d’API ODBC