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