SQLSetConnectAttr

Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)

El controlador ODBC de SQL Server Native Client omite la configuración de SQL_ATTR_CONNECTION_TIMEOUT.

SQL_ATTR_TRANSLATE_LIB también se ignora; especificando que otra biblioteca de traducción no es compatible. Para permitir que las aplicaciones se puedan migrar fácilmente para usar un controlador ODBC de Microsoft para SQL Server, cualquier valor establecido con SQL_ATTR_TRANSLATE_LIB se copiará en un búfer en el Administrador de controladores y se eliminará.

El controlador ODBC de SQL Server Native Client implementa el aislamiento de transacciones de lectura repetible como serializable.

SQL Server 2005 (9.x) introdujo compatibilidad con un nuevo atributo de aislamiento de transacción, SQL_COPT_SS_TXN_ISOLATION. Si SQL_COPT_SS_TXN_ISOLATION se establece en SQL_TXN_SS_SNAPSHOT, significa que la transacción tendrá lugar en el nivel de aislamiento de instantáneas.

Nota:

SQL_ATTR_TXN_ISOLATION puede usarse para establecer todos los demás niveles de aislamiento salvo SQL_TXN_SS_SNAPSHOT. Si desea usar el aislamiento de instantáneas, debe establecer SQL_TXN_SS_SNAPSHOT a través de SQL_COPT_SS_TXN_ISOLATION. Sin embargo, puede recuperar el nivel de aislamiento mediante SQL_ATTR_TXN_ISOLATION o SQL_COPT_SS_TXN_ISOLATION.

La promoción de atributos de instrucción a atributos de conexión ODBC puede tener consecuencias imprevistas. Los atributos de instrucción que solicitan cursores de servidor para el procesamiento del conjunto de resultados pueden promoverse a la conexión. Por ejemplo, el establecimiento del atributo de instrucción ODBC SQL_ATTR_CONCURRENCY a un valor más restrictivo que el valor SQL_CONCUR_READ_ONLY predeterminado indica al controlador que use cursores dinámicos para todas las instrucciones enviadas en la conexión. Si se ejecuta una función de catálogo ODBC en una instrucción en la conexión, se devuelve SQL_SUCCESS_WITH_INFO y un registro de diagnóstico que indica que el comportamiento del cursor se ha modificado a solo lectura. Se produce un error al intentar ejecutar una instrucción SELECT de Transact-SQL que contiene una cláusula COMPUTE en la misma conexión.

El controlador ODBC de SQL Server Native Client admite una serie de extensiones específicas del controlador para los atributos de conexión ODBC definidos en sqlncli.h. El controlador ODBC de SQL Server Native Client puede requerir que el atributo se establezca antes de la conexión, o puede omitir el atributo si ya está establecido. En la tabla siguiente se enumeran las restricciones.

Atributo de SQL Server Establecer antes o después de la conexión al servidor
SQL_COPT_SS_ANSI_NPW Antes
SQL_COPT_SS_APPLICATION_INTENT Antes
SQL_COPT_SS_ATTACHDBFILENAME Antes
SQL_COPT_SS_BCP Antes
SQL_COPT_SS_BROWSE_CONNECT Antes
SQL_COPT_SS_BROWSE_SERVER Antes
SQL_COPT_SS_CONCAT_NULL Antes
SQL_COPT_SS_CONNECTION_DEAD Después
SQL_COPT_SS_ENCRYPT Antes
SQL_COPT_SS_ENLIST_IN_DTC Después
SQL_COPT_SS_ENLIST_IN_XA Después
SQL_COPT_SS_FALLBACK_CONNECT Antes
SQL_COPT_SS_FAILOVER_PARTNER Antes
SQL_COPT_SS_INTEGRATED_SECURITY Antes
SQL_COPT_SS_MARS_ENABLED Antes
SQL_COPT_SS_MULTISUBNET_FAILOVER Antes
SQL_COPT_SS_OLDPWD Antes
SQL_COPT_SS_PERF_DATA Después
SQL_COPT_SS_PERF_DATA_LOG Después
SQL_COPT_SS_PERF_DATA_LOG_NOW Después
SQL_COPT_SS_PERF_QUERY Después
SQL_COPT_SS_PERF_QUERY_INTERVAL Después
SQL_COPT_SS_PERF_QUERY_LOG Después
SQL_COPT_SS_PRESERVE_CURSORS Antes
SQL_COPT_SS_QUOTED_IDENT Es posible usar el
SQL_COPT_SS_TRANSLATE Es posible usar el
SQL_COPT_SS_TRUST_SERVER_CERTIFICATE Antes
SQL_COPT_SS_TXN_ISOLATION Es posible usar el
SQL_COPT_SS_USE_PROC_FOR_PREP Es posible usar el
SQL_COPT_SS_USER_DATA Es posible usar el
SQL_COPT_SS_WARN_ON_CP_ERROR Antes

El uso de un atributo de conexión previa y el comando equivalente de Transact-SQL para la misma sesión, base de datos o estado de SQL Server puede producir un comportamiento inesperado. Por ejemplo,

SQLSetConnectAttr(SQL_COPT_SS_QUOTED_IDENT, SQL_QI_ON) // turn ON via attribute  
SQLDriverConnect(...);  
SQLExecDirect("SET QUOTED_IDENTIFIER OFF") // turn OFF via Transact-SQL  
SQLSetConnectAttr(SQL_ATTR_CURRENT_CATALOG, ...) // restores to pre-connect attribute value  

SQL_COPT_SS_ANSI_NPW

SQL_COPT_SS_ANSI_NPW habilita o deshabilita el uso de la administración ISO de valores NULL en comparaciones y concatenación, relleno de tipos de datos de caracteres y advertencias. Para obtener más información, vea SET ANSI_NULLS, SET ANSI_PADDING, SET ANSI_WARNINGS y SET CONCAT_NULL_YIELDS_NULL.

Valor Descripción
SQL_AD_ON Predeterminada. La conexión usa el comportamiento ANSI predeterminado para administrar comparaciones de valores NULL, relleno, advertencias y concatenaciones de valores NULL.
SQL_AD_OFF La conexión usa el control definido por SQL Server de valores NULL, relleno de tipos de datos de caracteres y advertencias.

Si usa la agrupación de conexiones, SQL_COPT_SS_ANSI_NPW debe establecerse en el cadena de conexión, en lugar de con SQLSetConnectAttr. Una vez realizada una conexión, cualquier intento por cambiar este atributo cuando se use la agrupación de conexiones dará lugar a un error que no se notificará.

SQL_COPT_SS_APPLICATION_INTENT

Declara el tipo de carga de trabajo de la aplicación al conectarse a un servidor. Los valores posibles son Readonly y ReadWrite. Por ejemplo:

SQLSetConnectAttr(hdbc, SQL_COPT_SS_APPLICATION_INTENT, TEXT("Readonly"), SQL_NTS)  

El valor predeterminado es ReadWrite. Para obtener más información sobre la compatibilidad de SQL Server Native Client con grupos de disponibilidad AlwaysOn, consulte Compatibilidad con SQL Server Native Client para alta disponibilidad y recuperación ante desastres.

SQL_COPT_SS_ATTACHDBFILENAME

SQL_COPT_SS_ATTACHDBFILENAME especifica el nombre del archivo principal de una base de datos adjuntable. Esta base de datos se adjunta y se convierte en la base de datos predeterminada para la conexión. Para usar SQL_COPT_SS_ATTACHDBFILENAME debe especificar el nombre de la base de datos como el valor del atributo de conexión SQL_ATTR_CURRENT_CATALOG o en el parámetro DATABASE = de sqlDriverConnect. Si la base de datos se adjuntó anteriormente, SQL Server no volverá a adjuntarla.

Valor Descripción
SQLPOINTER a una cadena de caracteres La cadena contiene el nombre del archivo principal de la base de datos que va a adjuntarse. Incluya el nombre completo de la ruta de acceso al archivo.

SQL_COPT_SS_BCP

SQL_COPT_SS_BCP habilita las funciones de copia masiva en una conexión. Para obtener más información, vea Funciones de copia masiva.

Valor Descripción
SQL_BCP_OFF Predeterminada. Las funciones de copia masiva no están disponibles en la conexión.
SQL_BCP_ON Las funciones de copia masiva están disponibles en la conexión.

SQL_COPT_SS_BROWSE_CONNECT

Este atributo se usa para personalizar el conjunto de resultados devuelto por SQLBrowseConnect. SQL_COPT_SS_BROWSE_CONNECT habilita o deshabilita la devolución de información adicional de una instancia enumerada de SQL Server. Esta información puede incluir datos como si el servidor es un clúster, nombres de instancias distintas y el número de versión.

Valor Descripción
SQL_MORE_INFO_NO Predeterminada. Devuelve una lista de servidores.
SQL_MORE_INFO_YES SQLBrowseConnect devuelve una cadena extendida de propiedades del servidor.

SQL_COPT_SS_BROWSE_SERVER

Este atributo se usa para personalizar el conjunto de resultados devuelto por SQLBrowseConnect. SQL_COPT_SS_BROWSE_SERVER especifica el nombre del servidor para el que SQLBrowseConnect devuelve la información.

Valor Descripción
computername SQLBrowseConnect devuelve una lista de instancias de SQL Server en el equipo especificado. No se deben usar barras diagonales inversas dobles (\\) para el nombre del servidor (por ejemplo, en lugar de \\MyServer, se debe usar MyServer).
NULL Predeterminada. SQLBrowseConnect devuelve información para todos los servidores del dominio.

SQL_COPT_SS_CONCAT_NULL

SQL_COPT_SS_CONCAT_NULL habilita o deshabilita el uso de la administración ISO de valores NULL al concatenar cadenas. Para más información, consulte SET CONCAT_NULL_YIELDS_NULL.

Valor Descripción
SQL_CN_ON Predeterminada. La conexión usa el comportamiento ISO predeterminado para administrar valores NULL al concatenar cadenas.
SQL_CN_OFF La conexión usa el comportamiento definido por SQL Server para controlar valores NULL al concatenar cadenas.

SQL_COPT_SS_ENCRYPT

Controla el cifrado de una conexión.

El cifrado usa el certificado en el servidor. Una entidad de certificación debe comprobar el certificado, a menos que el atributo de conexión SQL_COPT_SS_TRUST_SERVER_CERTIFICATE se establezca en SQL_TRUST_SERVER_CERTIFICATE_YES o que la cadena de conexión contenga "TrustServerCertificate=yes". Si se cumple alguna de estas condiciones, puede usarse un certificado generado y firmado por el servidor para cifrar la conexión en caso de que no haya ningún certificado en el servidor.

Valor Descripción
SQL_EN_ON La conexión se cifrará.
SQL_EN_OFF La conexión no se cifrará. Este es el valor predeterminado.

SQL_COPT_SS_ENLIST_IN_DTC

El cliente llama al método Microsoft Distributed Transaction Coordinator (MS DTC) OLE DB ITransactionDispenser::BeginTransaction para iniciar una transacción de MS DTC y crear un objeto de transacción MS DTC que represente la transacción. A continuación, la aplicación llama a SQLSetConnectAttr con la opción SQL_COPT_SS_ENLIST_IN_DTC para asociar el objeto de transacción a la conexión ODBC. Toda la actividad de base de datos relacionada se realizará bajo la protección de la transacción MS DTC. La aplicación llama a SQLSetConnectAttr con SQL_DTC_DONE para finalizar la asociación DTC de la conexión.

Valor Descripción
Objeto DTC* Objeto de transacción OLE de MS DTC que especifica la transacción que se va a exportar a SQL Server.
SQL_DTC_DONE Delimita el final de una transacción DTC.

SQL_COPT_SS_ENLIST_IN_XA

Para iniciar una transacción de XA con un procesador de transacciones compatible con XA (TP), el cliente llama a la función Open Group tx_begin . A continuación, la aplicación llama a SQLSetConnectAttr con un parámetro SQL_COPT_SS_ENLIST_IN_XA de TRUE para asociar la transacción XA a la conexión ODBC. Toda la actividad de base de datos relacionada se realizará bajo la protección de la transacción XA. Para finalizar una asociación de XA con una conexión ODBC, el cliente debe llamar a SQLSetConnectAttr con un parámetro SQL_COPT_SS_ENLIST_IN_XA de FALSE. Para obtener más información, vea la documentación de Microsoft DTC (Coordinador de transacciones distribuidas).

SQL_COPT_SS_FALLBACK_CONNECT

Este atributo ya no se admite.

SQL_COPT_SS_FAILOVER_PARTNER

Se usa para especificar o recuperar el nombre del asociado de conmutación por error usado para la creación de reflejo de la base de datos en SQL Server y es una cadena de caracteres terminada en null que se debe establecer antes de que se realice inicialmente la conexión a SQL Server.

Después de realizar la conexión, la aplicación puede consultar este atributo mediante SQLGetConnectAttr para determinar la identidad del asociado de conmutación por error. Si el servidor principal no tiene ningún asociado de conmutación por error, esta propiedad devolverá una cadena vacía. Esto permite que una aplicación inteligente almacene en memoria caché el servidor de copia de seguridad determinado más recientemente, pero dichas aplicaciones deben tener en cuenta que la información solo se actualiza cuando la conexión se establece por primera vez (o se restablece, si está agrupada) y puede quedar desfasada para conexiones a largo plazo.

Para obtener más información, vea Usar la creación de reflejo de la base de datos.

SQL_COPT_SS_INTEGRATED_SECURITY

SQL_COPT_SS_INTEGRATED_SECURITY fuerza el uso de la autenticación de Windows para la validación de acceso en el inicio sesión del servidor. Cuando se usa la autenticación de Windows, el controlador omite los valores de identificador de usuario y contraseña proporcionados como parte del procesamiento de SQLConnect, SQLDriverConnect o SQLBrowseConnect .

Valor Descripción
SQL_IS_OFF Predeterminada. La autenticación de SQL Server se usa para validar el identificador de usuario y la contraseña en el inicio de sesión.
SQL_IS_ON El modo de autenticación de Windows se usa para validar los derechos de acceso de un usuario a SQL Server.

SQL_COPT_SS_MARS_ENABLED

Este atributo habilita o deshabilita MARS (Multiple Active Result Sets, conjuntos de resultados activos múltiples). De forma predeterminada, MARS está deshabilitado. Este atributo debe establecerse antes de establecer una conexión a SQL Server. Una vez abierta la conexión de SQL Server, MARS permanecerá habilitado o deshabilitado durante la vida útil de la conexión.

Valor Descripción
SQL_MARS_ENABLED_NO Predeterminada. MARS (Multiple Active Result Sets, conjuntos de resultados activos múltiples) está deshabilitado.
SQL_MARS_ENABLED_YES MARS está habilitado.

Para obtener más información sobre MARS, consulte Uso de varios conjuntos de resultados activos (MARS).

SQL_COPT_SS_MULTISUBNET_FAILOVER

Si la aplicación se conecta a un grupo de disponibilidad (AG) de grupos de disponibilidad AlwaysOn en subredes diferentes, esta propiedad de conexión configura SQL Server Native Client para proporcionar una detección más rápida de y la conexión al servidor activo (actualmente). Por ejemplo:

SQLSetConnectAttr(hdbc, SQL_COPT_SS_MULTISUBNET_FAILOVER, SQL_IS_ON, SQL_IS_INTEGER)  

Para obtener más información sobre la compatibilidad de SQL Server Native Client con grupos de disponibilidad AlwaysOn, consulte Compatibilidad con SQL Server Native Client para alta disponibilidad y recuperación ante desastres.

Valor Descripción
SQL_IS_ON SQL Server Native Client proporciona una reconexión más rápida si hay una conmutación por error.
SQL_IS_OFF SQL Server Native Client no proporcionará una reconexión más rápida si hay una conmutación por error.

SQL_COPT_SS_OLDPWD

La expiración de la contraseña para la autenticación de SQL Server se introdujo en SQL Server 2005 (9.x). Se ha agregado el atributo SQL_COPT_SS_OLDPWD para permitir que el cliente especifique la contraseña antigua y la nueva contraseña para la conexión. Cuando se establezca esta propiedad, el proveedor no usará el grupo de conexiones para la primera conexión o para conexiones posteriores, puesto que la cadena de conexión contendrá la "contraseña antigua" que ahora ha cambiado.

Para más información, consulte Cambio de contraseñas mediante programación.

Valor Descripción
SQL_COPT_SS_OLD_PASSWORD SQLPOINTER a una cadena de caracteres que contiene la contraseña anterior. Este valor es de solo escritura y debe establecerse antes de la conexión al servidor.

SQL_COPT_SS_PERF_DATA

SQL_COPT_SS_PERF_DATA inicia o detiene el registro de datos de rendimiento. El nombre del archivo de registro de datos debe establecerse antes de iniciar el registro de datos. Vea SQL_COPT_SS_PERF_DATA_LOG a continuación.

Valor Descripción
SQL_PERF_START Inicia el muestreo de datos de rendimiento del controlador.
SQL_PERF_STOP Detiene el muestreo de datos de rendimiento por parte de los controladores.

Para obtener más información, vea SQLGetConnectAttr.

SQL_COPT_SS_PERF_DATA_LOG

SQL_COPT_SS_PERF_DATA_LOG asigna el nombre del archivo de registro utilizado para grabar datos de rendimiento. El nombre del archivo de registro es una cadena ANSI o Unicode terminada en NULL, en función de la compilación de la aplicación. El argumento StringLength debe ser SQL_NTS.

SQL_COPT_SS_PERF_DATA_LOG_NOW

SQL_COPT_SS_PERF_DATA_LOG_NOW indica al controlador que escriba una entrada de registro de estadísticas en el disco. El argumento StringLength debe ser SQL_NTS.

SQL_COPT_SS_PERF_QUERY

SQL_COPT_SS_PERF_QUERY inicia o detiene el registro de consultas de ejecución prolongada. El nombre del archivo de registro de consultas debe suministrarse antes de iniciar el registro. La aplicación puede definir la "ejecución prolongada" estableciendo el intervalo para el registro.

Valor Descripción
SQL_PERF_START Inicia el registro de consultas de ejecución prolongada.
SQL_PERF_STOP Detiene el registro de las consultas de ejecución prolongada.

Para obtener más información, vea SQLGetConnectAttr.

SQL_COPT_SS_PERF_QUERY_INTERVAL

SQL_COPT_SS_PERF_QUERY_INTERVAL establece el umbral de registro de consultas en milisegundos. Las consultas que no se resuelven dentro del umbral se graban en el archivo de registro de consultas de ejecución prolongada. No existe un límite superior en el umbral de consultas. Un valor de umbral de consulta igual a cero da lugar al registro de todas las consultas.

SQL_COPT_SS_PERF_QUERY_LOG

SQL_COPT_SS_PERF_QUERY_LOG asigna el nombre de un archivo de registro para grabar los datos de consulta de ejecución prolongada. El nombre del archivo de registro es una cadena ANSI o Unicode terminada en NULL, en función de la compilación de la aplicación. El argumento StringLength debe ser SQL_NTS o la longitud de la cadena en bytes.

SQL_COPT_SS_PRESERVE_CURSORS

Este atributo permite consultar y establecer si la conexión conservará o no los cursores al confirmar o revertir una transacción. El valor es SQL_PC_ON o SQL_PC_OFF. El valor predeterminado es SQL_PC_OFF. Esta configuración controla si el controlador cerrará los cursores para usted cuando llame a SQLEndTran (o SQLTransact).

Valor Descripción
SQL_PC_OFF Predeterminada. Los cursores se cierran cuando se confirma o se revierte la transacción mediante SQLEndTran.
SQL_PC_ON Los cursores no se cierran cuando se confirma o se revierte la transacción mediante SQLEndTran, excepto cuando se usa un cursor estático o de conjunto de claves en modo asincrónico. Si se emite una reversión antes de que se complete el rellenado del cursor, se cierra el cursor.

SQL_COPT_SS_QUOTED_IDENT

SQL_COPT_SS_QUOTED_IDENT permite el uso de identificadores entre comillas en instrucciones ODBC y Transact-SQL enviadas en la conexión. Al proporcionar identificadores entre comillas, el controlador ODBC de SQL Server Native Client permite nombres de objeto no válidos como "Mi tabla", que contiene un carácter de espacio en el identificador. Para más información, consulte SET QUOTED_IDENTIFIER.

Valor Descripción
SQL_QI_OFF La conexión de SQL Server no permite identificadores entre comillas en Transact-SQL enviado.
SQL_QI_ON Predeterminada. La conexión permite identificadores entre comillas en Transact-SQL enviados.

SQL_COPT_SS_TRANSLATE

SQL_COPT_SS_TRANSLATE hace que el controlador traduzca los caracteres entre las páginas de códigos del cliente y del servidor a medida que se intercambian datos MBCS. El atributo afecta solo a los datos almacenados en columnas char, varchar y text de SQL Server.

Valor Descripción
SQL_XL_OFF El controlador no traduce los caracteres de una página de códigos a otra en los datos de caracteres intercambiados entre el cliente y el servidor.
SQL_XL_ON Predeterminada. El controlador traduce los caracteres de una página de códigos a otra en los datos de caracteres intercambiados entre el cliente y el servidor. El controlador configura automáticamente la traducción de caracteres, determinando la página de códigos instalada en el servidor y que está usando el cliente.

SQL_COPT_SS_TRUST_SERVER_CERTIFICATE

SQL_COPT_SS_TRUST_SERVER_CERTIFICATE hace que el controlador habilite o deshabilite la validación de certificados cuando se utiliza el cifrado. Este atributo es un valor de lectura/escritura, pero si se establece después de que se haya establecido una conexión no tiene ningún efecto.

Las aplicaciones cliente podrán consultar esta propiedad una vez que se haya abierto una conexión para determinar la configuración real de cifrado y validación que se está usando.

Valor Descripción
SQL_TRUST_SERVER_CERTIFICATE_NO Predeterminada. No está habilitado el cifrado sin validación de certificados.
SQL_TRUST_SERVER_CERTIFICATE_YES Está habilitado el cifrado sin validación de certificados.

SQL_COPT_SS_TXN_ISOLATION

SQL_COPT_SS_TXN_ISOLATION establece el atributo de aislamiento de instantánea específico de SQL Server. El aislamiento de instantáneas no se puede establecer mediante SQL_ATTR_TXN_ISOLATION porque el valor es específico de SQL Server. Sin embargo, puede recuperarse mediante SQL_ATTR_TXN_ISOLATION o SQL_COPT_SS_TXN_ISOLATION.

Valor Descripción
SQL_TXN_SS_SNAPSHOT Indica desde una transacción no pueden verse los cambios realizados en otras transacciones y que no podrá ver los cambios aunque realice una nueva consulta.

Para obtener más información sobre el aislamiento de instantáneas, consulte Trabajar con aislamiento de instantáneas.

SQL_COPT_SS_USE_PROC_FOR_PREP

Este atributo ya no se admite.

SQL_COPT_SS_USER_DATA

SQL_COPT_SS_USER_DATA establece el puntero a los datos del usuario. Los datos del usuario son memoria propiedad del cliente y se registran por conexión.

Para obtener más información, vea SQLGetConnectAttr.

SQL_COPT_SS_WARN_ON_CP_ERROR

Este atributo determina si obtendrá una advertencia si se pierden datos durante la conversión de una página de códigos. Esto solo se aplica a los datos que provienen del servidor.

Valor Descripción
SQL_WARN_YES Generar advertencias cuando se produzca la pérdida de datos durante la conversión de la página de códigos.
SQL_WARN_NO (Valor predeterminado) No generar advertencias cuando se produzca la pérdida de datos durante la conversión de la página de códigos.

Compatibilidad de SQLSetConnectAttr con los nombres principales de servicio (SPN)

SQLSetConnectAttr se puede usar para establecer el valor de los nuevos atributos de conexión SQL_COPT_SS_SERVER_SPN y SQL_COPT_SS_FAILOVER_PARTNER_SPN. Estos atributos no pueden establecerse cuando hay una conexión abierta; si intenta establecer estos atributos cuando hay una conexión abierta, se devuelve el error HY011 con el mensaje "Operación no válida en este momento". (SQLSetConnectOption también se puede usar para establecer estos valores).

Para obtener más información sobre los SPN, consulte Nombres de entidad de seguridad de servicio (SPN) en Conexiones de cliente (ODBC).

SQL_COPT_SS_CONNECTION_DEAD

Este atributo es de solo lectura.

Para obtener más información sobre SQL_COPT_SS_CONNECTION_DEAD, vea SQLGetConnectAttr y Conexión a un origen de datos (ODBC).

Ejemplo

En este ejemplo se registran los datos de rendimiento.

SQLPERF*     pSQLPERF;  
SQLINTEGER   nValue;  
  
// See if you are already logging. SQLPERF* will be NULL if not.  
SQLGetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA, &pSQLPERF,  
    sizeof(SQLPERF*), &nValue);  
  
if (pSQLPERF == NULL)  
    {  
    // Set the performance log file name.  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG,  
        (SQLPOINTER) "\\My LogDirectory\\MyServerLog.txt", SQL_NTS);  
  
    // Start logging...  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA,  
        (SQLPOINTER) SQL_PERF_START, SQL_IS_INTEGER);  
    }  
else  
    {  
    // Take a snapshot now so that your performance statistics are discernible.  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
    }  
  
    // ...perform some action...  
  
// ...take a performance data snapshot...  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
  
    // ...perform more actions...  
  
// ...take another snapshot...  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
  
// ...and disable logging.  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA,  
    (SQLPOINTER) SQL_PERF_STOP, SQL_IS_INTEGER);  
  
// Continue on...  

Consulte también

Función SQLSetConnectAttr
Detalles de implementación de la API de ODBC
Funciones de copia masiva
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL)
Función SQLPrepare
SQLGetInfo