Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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