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 informes de errores enriquecidos para las aplicaciones de SQL Server y están disponibles en todos los registros de diagnóstico generados en los identificadores de conexión ODBC conectados y los identificadores de instrucciones ODBC. Los campos se definen en sqlncli.h.

Campo de registro de diagnóstico Descripción
SQL_DIAG_SS_LINE Informa del número de línea de un procedimiento almacenado que genera un error. El valor de SQL_DIAG_SS_LINE solo es significativo si SQL_DIAG_SS_PROCNAME devuelve un valor. El valor se devuelve como un entero de 16 bits sin signo.
SQL_DIAG_SS_MSGSTATE 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 de 32 bits con signo.
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 para SQL_MAX_PROCEDURE_NAME_LEN.
SQL_DIAG_SS_SEVERITY Nivel de gravedad del mensaje de error asociado. El valor se devuelve como un entero de 32 bits con signo.
SQL_DIAG_SS_SRVNAME Nombre del servidor en el que se produjo el error. El valor se devuelve como una cadena de caracteres. La longitud de la cadena (en caracteres) se define mediante la macro SQL_MAX_SQLSERVERNAME en 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 esos datos al cliente como cadenas terminadas en NULL, ANSI o Unicode. Si es necesario, el número de caracteres debe ajustarse por el ancho del carácter. Como alternativa, se puede usar un tipo de datos C portátil como TCHAR o SQLTCHAR para garantizar la longitud de variable del programa correcta.

El controlador ODBC de SQL Server Native Client informa de los siguientes códigos de función dinámica adicionales que identifican la última instrucción de SQL Server que se intentó. El código de función dinámica se devuelve en el encabezado (registro 0) del conjunto de registros de diagnóstico y, por tanto, está disponible en cada ejecución (correcta o no).

Código de función dinámica Fuente
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 DROP DEFAULT (instrucción)
SQL_DIAG_DFC_SS_DROP_PROCEDURE DROP PROCEDURE (instrucción)
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 para una instrucción CHECKPOINT si la trunc. log en chkpt. la opción de base de datos está activada.
SQL_DIAG_DFC_SS_GOTO Instrucción de control de flujo GOTO
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 ReadTEXT (instrucción)
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érica, 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 Instrucciones 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 COMMIT TRAN (instrucción)
SQL_DIAG_DFC_SS_TRANS_PREPARE Preparación para confirmar una transacción distribuida
SQL_DIAG_DFC_SS_TRANS_ROLLBACK ROLLBACK TRAN (instrucción)
SQL_DIAG_DFC_SS_TRANS_SAVE INSTRUCCIÓN SAVE TRAN
SQL_DIAG_DFC_SS_TRUNCATE_TABLE TRUNCATE TABLE (instrucción)
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 control-of-flow
SQL_DIAG_DFC_SS_WRITETEXT Instrucción WRITETEXT

Parámetros SQLGetDiagField y Table-Valued

SQLGetDiagField se puede usar para recuperar dos campos de diagnóstico: SQL_DIAG_SS_TABLE_COLUMN_NUMBER y SQL_DIAG_SS_TABLE_ROW_NUMBER. Estos campos le ayudan a determinar qué valor provocó el error o la advertencia asociados al registro de diagnóstico.

Para obtener más información sobre los parámetros con valores de tabla, vea Parámetros con valores de tabla (ODBC).

Véase también

Función SQLGetDiagField
Detalles de implementación de la API de ODBC