Compartir a través de


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).