SQLGetDiagField
El controlador ODBC de SQL Server Native Client especifica los siguientes campos de diagnóstico adicionales para SQLGetDiagField. Estos campos admiten el informe de errores enriquecido para aplicaciones de SQL Server y están disponible en todos los registros de diagnóstica que se generan en los identificadores de conexión de ODBC e identificadores de instrucciones de ODBC conectados. Los campos se definen en sqlncli.h.
Campo del registro de diagnóstico |
Descripción |
---|---|
SQL_DIAG_SS_LINE |
Indica el número de línea de un procedimiento almacenado que genera un error. El valor de SQL_DIAG_SS_LINE sólo es significativo si SQL_DIAG_SS_PROCNAME devuelve un valor. El valor se devuelve como un entero sin signo de 16 bits. |
SQL_DIAG_SS_MSGSTATE |
El estado de un mensaje de error. Para obtener información sobre el estado del mensaje de error, vea RAISERROR. El valor se devuelve como un entero con signo de 32 bits. |
SQL_DIAG_SS_PROCNAME |
Nombre del procedimiento almacenado que genera un error, si procede. El valor se devuelve como una cadena de caracteres. La longitud de la cadena (en caracteres) depende de la versión de SQL Server. Se puede determinar mediante una llamada a SQLGetInfo que solicita el valor de SQL_MAX_PROCEDURE_NAME_LEN. |
SQL_DIAG_SS_SEVERITY |
El nivel de gravedad del mensaje de error asociado. El valor se devuelve como un entero con signo de 32 bits. |
SQL_DIAG_SS_SRVNAME |
El nombre del servidor donde se ha producido el error. El valor se devuelve como una cadena de caracteres. La longitud de la cadena (en caracteres) se define en la macro SQL_MAX_SQLSERVERNAME de sqlncli.h. |
Los campos de diagnóstico específicos de SQL Server que contienen datos de caracteres, SQL_DIAG_SS_PROCNAME y SQL_DIAG_SS_SRVNAME, devuelven estos datos al cliente como cadenas terminadas en NULL, ANSI o Unicode. Si es necesario, el ancho de caracteres debe ajustar el recuento de caracteres. También se puede utilizar un tipo de datos de C portátil como TCHAR o SQLTCHAR para garantizar la longitud correcta de la variable de programa.
El controlador ODBC de SQL Server Native Client notifica los siguientes códigos de función dinámica adicionales que identifican la última instrucción SQL Server intentada. El código de función dinámica se devuelve en el encabezado (registro 0) del conjunto de registros de diagnóstico y está por tanto disponible en cada ejecución (correcta o no).
Código de función dinámica |
Origen |
---|---|
SQL_DIAG_DFC_SS_ALTER_DATABASE |
Instrucción ALTER DATABASE |
SQL_DIAG_DFC_SS_CHECKPOINT |
Instrucción CHECKPOINT |
SQL_DIAG_DFC_SS_CONDITION |
Error surgido en las cláusulas WHERE o HAVING de una instrucción. |
SQL_DIAG_DFC_SS_CREATE_DATABASE |
Instrucción CREATE DATABASE |
SQL_DIAG_DFC_SS_CREATE_DEFAULT |
Instrucción CREATE DEFAULT |
SQL_DIAG_DFC_SS_CREATE_PROCEDURE |
Instrucción CREATE PROCEDURE |
SQL_DIAG_DFC_SS_CREATE_RULE |
Instrucción CREATE RULE |
SQL_DIAG_DFC_SS_CREATE_TRIGGER |
Instrucción CREATE TRIGGER |
SQL_DIAG_DFC_SS_CURSOR_DECLARE |
Instrucción DECLARE CURSOR |
SQL_DIAG_DFC_SS_CURSOR_OPEN |
Instrucción OPEN |
SQL_DIAG_DFC_SS_CURSOR_FETCH |
Instrucción FETCH |
SQL_DIAG_DFC_SS_CURSOR_CLOSE |
Instrucción CLOSE |
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR |
Instrucción DEALLOCATE |
SQL_DIAG_DFC_SS_DBCC |
Instrucción DBCC |
SQL_DIAG_DFC_SS_DENY |
Instrucción DENY |
SQL_DIAG_DFC_SS_DROP_DATABASE |
Instrucción DROP DATABASE |
SQL_DIAG_DFC_SS_DROP_DEFAULT |
Instrucción DROP DEFAULT |
SQL_DIAG_DFC_SS_DROP_PROCEDURE |
Instrucción DROP PROCEDURE |
SQL_DIAG_DFC_SS_DROP_RULE |
Instrucción DROP RULE |
SQL_DIAG_DFC_SS_DROP_TRIGGER |
Instrucción DROP TRIGGER |
SQL_DIAG_DFC_SS_DUMP_DATABASE |
Instrucción BACKUP o DUMP DATABASE |
SQL_DIAG_DFC_SS_DUMP_TABLE |
Instrucción DUMP TABLE |
SQL_DIAG_DFC_SS_DUMP_TRANSACTION |
Instrucción BACKUP o DUMP TRANSACTION. También se devuelve en una instrucción CHECKPOINT si la opción de base de datos trunc. log on chkpt. está activada. |
SQL_DIAG_DFC_SS_GOTO |
Instrucción GOTO de control de flujo |
SQL_DIAG_DFC_SS_INSERT_BULK |
Instrucción INSERT BULK |
SQL_DIAG_DFC_SS_KILL |
Instrucción KILL |
SQL_DIAG_DFC_SS_LOAD_DATABASE |
Instrucción LOAD o RESTORE DATABASE |
SQL_DIAG_DFC_SS_LOAD_HEADERONLY |
Instrucción LOAD o RESTORE HEADERONLY |
SQL_DIAG_DFC_SS_LOAD_TABLE |
Instrucción LOAD TABLE |
SQL_DIAG_DFC_SS_LOAD_TRANSACTION |
Instrucción LOAD o RESTORE TRANSACTION |
SQL_DIAG_DFC_SS_PRINT |
Instrucción PRINT |
SQL_DIAG_DFC_SS_RAISERROR |
Instrucción RAISERROR |
SQL_DIAG_DFC_SS_READTEXT |
Instrucción READTEXT |
SQL_DIAG_DFC_SS_RECONFIGURE |
Instrucción RECONFIGURE |
SQL_DIAG_DFC_SS_RETURN |
Instrucción RETURN de control de flujo |
SQL_DIAG_DFC_SS_SELECT_INTO |
Instrucción SELECT INTO |
SQL_DIAG_DFC_SS_SET |
Instrucción SET (genérico, todas las opciones) |
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT |
Instrucción SET IDENTITY_INSERT |
SQL_DIAG_DFC_SS_SET_ROW_COUNT |
Instrucción SET ROWCOUNT |
SQL_DIAG_DFC_SS_SET_STATISTICS |
Instrucción SET STATISTICS IO o SET STATISTICS TIME |
SQL_DIAG_DFC_SS_SET_TEXTSIZE |
Instrucción SET TEXTSIZE |
SQL_DIAG_DFC_SS_SETUSER |
Instrucción SETUSER |
SQL_DIAG_DFC_SS_SET_XCTLVL |
Instrucción SET TRANSACTION ISOLATION LEVEL |
SQL_DIAG_DFC_SS_SHUTDOWN |
Instrucción SHUTDOWN |
SQL_DIAG_DFC_SS_TRANS_BEGIN |
Instrucción BEGIN TRAN |
SQL_DIAG_DFC_SS_TRANS_COMMIT |
Instrucción COMMIT TRAN |
SQL_DIAG_DFC_SS_TRANS_PREPARE |
Preparación para confirmar una transacción distribuida |
SQL_DIAG_DFC_SS_TRANS_ROLLBACK |
Instrucción ROLLBACK TRAN |
SQL_DIAG_DFC_SS_TRANS_SAVE |
Instrucción SAVE TRAN |
SQL_DIAG_DFC_SS_TRUNCATE_TABLE |
Instrucción TRUNCATE TABLE |
SQL_DIAG_DFC_SS_UPDATE_STATISTICS |
Instrucción UPDATE STATISTICS |
SQL_DIAG_DFC_SS_UPDATETEXT |
Instrucción UPDATETEXT |
SQL_DIAG_DFC_SS_USE |
Instrucción USE |
SQL_DIAG_DFC_SS_WAITFOR |
Instrucción WAITFOR de control de flujo |
SQL_DIAG_DFC_SS_WRITETEXT |
Instrucción WRITETEXT |
SQLGetDiagField y parámetros con valores de tabla
SQLGetDiagField se puede utilizar para recuperar dos campos de diagnóstico (agregados SQL Server 2008): SQL_DIAG_SS_TABLE_COLUMN_NUMBER y SQL_DIAG_SS_TABLE_ROW_NUMBER. Estos campos ayudan a determinar qué valor produjo el error o la advertencia asociados al registro de diagnóstico.
Para obtener más información acerca de los parámetros con valores de tabla, vea Parámetros con valores de tabla (ODBC).
Vea también