SQLSetConnectAttrSQLSetConnectAttr

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

El controlador ODBC de SQL ServerSQL Server Native Client pasa por alto la configuración de SQL_ATTR_CONNECTION_TIMEOUT.The SQL ServerSQL Server Native Client ODBC driver ignores the setting of SQL_ATTR_CONNECTION_TIMEOUT.

SQL_ATTR_TRANSLATE_LIB también se ignora; especificando que otra biblioteca de traducción no es compatible.SQL_ATTR_TRANSLATE_LIB is also ignored; specifying another translation library is not supported. Para permitir que las aplicaciones se trasladen fácilmente para usar un controlador ODBC de Microsoft para SQL ServerSQL Server, cualquier valor configurado con SQL_ATTR_TRANSLATE_LIB se copiará en y fuera de un búfer en el Administrador de controladores.To allow applications to easily be ported to use a Microsoft ODBC driver for SQL ServerSQL Server, any value set with SQL_ATTR_TRANSLATE_LIB will be copied into and out of a buffer in the Driver Manager.

El controlador ODBC de SQL ServerSQL Server Native Client implementa el aislamiento de transacciones de lectura repetible (REPEATABLE READ) como serializable.The SQL ServerSQL Server Native Client ODBC driver implements repeatable read transaction isolation as serializable.

En SQL Server 2005 (9.x)SQL Server 2005 (9.x) se introdujo compatibilidad para un nuevo atributo de aislamiento de transacciones, SQL_COPT_SS_TXN_ISOLATION.SQL Server 2005 (9.x)SQL Server 2005 (9.x) introduced support for a new transaction isolation attribute, 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.Setting SQL_COPT_SS_TXN_ISOLATION to SQL_TXN_SS_SNAPSHOT indicates that the transaction will take place under the snapshot isolation level.

Nota

SQL_ATTR_TXN_ISOLATION puede usarse para establecer todos los demás niveles de aislamiento salvo SQL_TXN_SS_SNAPSHOT.SQL_ATTR_TXN_ISOLATION can be used to set all other isolation levels except for 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.If you want to use snapshot isolation, you must set SQL_TXN_SS_SNAPSHOT through SQL_COPT_SS_TXN_ISOLATION. Sin embargo, puede recuperar el nivel de aislamiento mediante SQL_ATTR_TXN_ISOLATION o SQL_COPT_SS_TXN_ISOLATION.However, you can retrieve the isolation level by using either SQL_ATTR_TXN_ISOLATION or SQL_COPT_SS_TXN_ISOLATION.

La promoción de atributos de instrucción a atributos de conexión ODBC puede tener consecuencias imprevistas.Promoting ODBC statement attributes to connection attributes can have unintended consequences. Los atributos de instrucción que solicitan cursores de servidor para el procesamiento del conjunto de resultados pueden promoverse a la conexión.Statement attributes that request server cursors for result set processing can be promoted to the connection. 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.For example, setting the ODBC statement attribute SQL_ATTR_CONCURRENCY to a value more restrictive than the default SQL_CONCUR_READ_ONLY directs the driver to use dynamic cursors for all statements submitted on the connection. 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.Executing an ODBC catalog function on a statement on the connection returns SQL_SUCCESS_WITH_INFO and a diagnostic record indicating that the cursor behavior has been changed to read-only. 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.Attempting to execute a Transact-SQL SELECT statement containing a COMPUTE clause on the same connection fails.

El controlador ODBC de SQL ServerSQL Server Native Client admite varias extensiones específicas del controlador para los atributos de conexión ODBC definidos en sqlncli.h.The SQL ServerSQL Server Native Client ODBC driver supports a number of driver-specific extensions to ODBC connection attributes defined in sqlncli.h. El controlador ODBC de SQL ServerSQL Server Native Client puede exigir que el atributo se establezca antes de la conexión, o puede omitir el atributo si ya está establecido.The SQL ServerSQL Server Native Client ODBC driver may require that the attribute be set prior to connection, or it may ignore the attribute if it is already set. En la tabla siguiente se enumeran las restricciones.The following table lists restrictions.

Atributo de SQL ServerSQL Server attribute Establecer antes o después de la conexión al servidorSet before or after connection to server
SQL_COPT_SS_ANSI_NPWSQL_COPT_SS_ANSI_NPW Antes delBefore
SQL_COPT_SS_APPLICATION_INTENTSQL_COPT_SS_APPLICATION_INTENT Antes delBefore
SQL_COPT_SS_ATTACHDBFILENAMESQL_COPT_SS_ATTACHDBFILENAME Antes delBefore
SQL_COPT_SS_BCPSQL_COPT_SS_BCP Antes delBefore
SQL_COPT_SS_BROWSE_CONNECTSQL_COPT_SS_BROWSE_CONNECT Antes delBefore
SQL_COPT_SS_BROWSE_SERVERSQL_COPT_SS_BROWSE_SERVER Antes delBefore
SQL_COPT_SS_CONCAT_NULLSQL_COPT_SS_CONCAT_NULL Antes delBefore
SQL_COPT_SS_CONNECTION_DEADSQL_COPT_SS_CONNECTION_DEAD DespuésAfter
SQL_COPT_SS_ENCRYPTSQL_COPT_SS_ENCRYPT Antes delBefore
SQL_COPT_SS_ENLIST_IN_DTCSQL_COPT_SS_ENLIST_IN_DTC DespuésAfter
SQL_COPT_SS_ENLIST_IN_XASQL_COPT_SS_ENLIST_IN_XA DespuésAfter
SQL_COPT_SS_FALLBACK_CONNECTSQL_COPT_SS_FALLBACK_CONNECT Antes delBefore
SQL_COPT_SS_FAILOVER_PARTNERSQL_COPT_SS_FAILOVER_PARTNER Antes delBefore
SQL_COPT_SS_INTEGRATED_SECURITYSQL_COPT_SS_INTEGRATED_SECURITY Antes delBefore
SQL_COPT_SS_MARS_ENABLEDSQL_COPT_SS_MARS_ENABLED Antes delBefore
SQL_COPT_SS_MULTISUBNET_FAILOVERSQL_COPT_SS_MULTISUBNET_FAILOVER Antes delBefore
SQL_COPT_SS_OLDPWDSQL_COPT_SS_OLDPWD Antes delBefore
SQL_COPT_SS_PERF_DATASQL_COPT_SS_PERF_DATA DespuésAfter
SQL_COPT_SS_PERF_DATA_LOGSQL_COPT_SS_PERF_DATA_LOG DespuésAfter
SQL_COPT_SS_PERF_DATA_LOG_NOWSQL_COPT_SS_PERF_DATA_LOG_NOW DespuésAfter
SQL_COPT_SS_PERF_QUERYSQL_COPT_SS_PERF_QUERY DespuésAfter
SQL_COPT_SS_PERF_QUERY_INTERVALSQL_COPT_SS_PERF_QUERY_INTERVAL DespuésAfter
SQL_COPT_SS_PERF_QUERY_LOGSQL_COPT_SS_PERF_QUERY_LOG DespuésAfter
SQL_COPT_SS_PRESERVE_CURSORSSQL_COPT_SS_PRESERVE_CURSORS Antes delBefore
SQL_COPT_SS_QUOTED_IDENTSQL_COPT_SS_QUOTED_IDENT Antes o despuésEither
SQL_COPT_SS_TRANSLATESQL_COPT_SS_TRANSLATE Antes o despuésEither
SQL_COPT_SS_TRUST_SERVER_CERTIFICATESQL_COPT_SS_TRUST_SERVER_CERTIFICATE Antes delBefore
SQL_COPT_SS_TXN_ISOLATIONSQL_COPT_SS_TXN_ISOLATION Antes o despuésEither
SQL_COPT_SS_USE_PROC_FOR_PREPSQL_COPT_SS_USE_PROC_FOR_PREP Antes o despuésEither
SQL_COPT_SS_USER_DATASQL_COPT_SS_USER_DATA Antes o despuésEither
SQL_COPT_SS_WARN_ON_CP_ERRORSQL_COPT_SS_WARN_ON_CP_ERROR Antes delBefore

El uso de un atributo anterior a la conexión y el comando equivalente de Transact-SQLTransact-SQL para la misma sesión, base de datos o estado de SQL ServerSQL Server puede producir un comportamiento inesperado.Using a pre-connection attribute and the equivalent Transact-SQLTransact-SQL command for the same session, database, or SQL ServerSQL Server state can produce unexpected behavior. Por ejemplo,For example,

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_NPWSQL_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.SQL_COPT_SS_ANSI_NPW enables or disables the use of ISO handling of NULL in comparisons and concatenation, character data type padding, and warnings. Para obtener más información, vea SET ANSI_NULLS, SET ANSI_PADDING, SET ANSI_WARNINGS y SET CONCAT_NULL_YIELDS_NULL.For more information, see SET ANSI_NULLS, SET ANSI_PADDING, SET ANSI_WARNINGS, and SET CONCAT_NULL_YIELDS_NULL.

ValorValue DescripciónDescription
SQL_AD_ONSQL_AD_ON Predeterminado:Default. La conexión usa el comportamiento ANSI predeterminado para administrar comparaciones de valores NULL, relleno, advertencias y concatenaciones de valores NULL.The connection uses ANSI default behavior for handling NULL comparisons, padding, warnings, and NULL concatenations.
SQL_AD_OFFSQL_AD_OFF La conexión usa la administración definida por SQL ServerSQL Server de valores NULL, relleno de tipo de datos de caracteres y advertencias.The connection uses SQL ServerSQL Server-defined handling of NULL, character data type padding, and warnings.

Si usa la agrupación de conexiones, SQL_COPT_SS_ANSI_NPW debe establecerse en la cadena de conexión, en lugar de con SQLSetConnectAttr.If you use connection pooling, SQL_COPT_SS_ANSI_NPW should be set in the connection string, rather than with 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á.After a connection has been made, any attempt to change this attribute will fail silently when connection pooling is used.

SQL_COPT_SS_APPLICATION_INTENTSQL_COPT_SS_APPLICATION_INTENT

Declara el tipo de carga de trabajo de la aplicación al conectarse a un servidor.Declares the application workload type when connecting to a server. Los valores posibles son Readonly y ReadWrite.Possible values are Readonly and ReadWrite. Por ejemplo:For example:

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

El valor predeterminado es ReadWrite.The default is ReadWrite. Para obtener más información acerca de SQL ServerSQL Server compatibilidad del cliente nativo para Grupos de disponibilidad AlwaysOnAlways On availability groups AG, consulte SQL Server Native cliente admite para alta disponibilidad y recuperación ante desastres.For more information about SQL ServerSQL Server Native Client's support for Grupos de disponibilidad AlwaysOnAlways On availability groups AGs, see SQL Server Native Client Support for High Availability, Disaster Recovery.

SQL_COPT_SS_ATTACHDBFILENAMESQL_COPT_SS_ATTACHDBFILENAME

SQL_COPT_SS_ATTACHDBFILENAME especifica el nombre del archivo principal de una base de datos adjuntable.SQL_COPT_SS_ATTACHDBFILENAME specifies the name of the primary file of an attachable database. Esta base de datos se adjunta y se convierte en la base de datos predeterminada para la conexión.This database is attached and becomes the default database for the connection. 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 la base de datos = el parámetro de un SQLDriverConnect.To use SQL_COPT_SS_ATTACHDBFILENAME you must specify the name of the database as the value of the connection attribute SQL_ATTR_CURRENT_CATALOG or in the DATABASE = parameter of a SQLDriverConnect. Si la base de datos se ha adjuntado previamente, SQL ServerSQL Server no volverá a adjuntarla.If the database was previously attached, SQL ServerSQL Server will not reattach it.

ValorValue DescripciónDescription
SQLPOINTER a una cadena de caracteresSQLPOINTER to a character string La cadena contiene el nombre del archivo principal de la base de datos que va a adjuntarse.The string contains the name of the primary file for the database to attach. Incluya el nombre completo de la ruta de acceso al archivo.Include the full path name of the file.

SQL_COPT_SS_BCPSQL_COPT_SS_BCP

SQL_COPT_SS_BCP habilita las funciones de copia masiva en una conexión.SQL_COPT_SS_BCP enables bulk copy functions on a connection. Para obtener más información, consulte funciones de copia masiva.For more information, see Bulk Copy Functions.

ValorValue DescripciónDescription
SQL_BCP_OFFSQL_BCP_OFF Predeterminado:Default. Las funciones de copia masiva no están disponibles en la conexión.Bulk copy functions are not available on the connection.
SQL_BCP_ONSQL_BCP_ON Las funciones de copia masiva están disponibles en la conexión.Bulk copy functions are available on the connection.

SQL_COPT_SS_BROWSE_CONNECTSQL_COPT_SS_BROWSE_CONNECT

Este atributo se usa para personalizar el conjunto de resultados devuelto por SQLBrowseConnect.This attribute is used to customize the result set returned by SQLBrowseConnect. SQL_COPT_SS_BROWSE_CONNECT habilita o deshabilita la devolución de información adicional de una instancia enumerada de SQL ServerSQL Server.SQL_COPT_SS_BROWSE_CONNECT enables or disables the return of additional information from an enumerated instance of SQL ServerSQL 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.This can include information such as whether the server is a cluster, names of different instances, and the version number.

ValorValue DescripciónDescription
SQL_MORE_INFO_NOSQL_MORE_INFO_NO Predeterminado:Default. Devuelve una lista de servidores.Returns a list of servers.
SQL_MORE_INFO_YESSQL_MORE_INFO_YES SQLBrowseConnect devuelve una cadena extendida de propiedades del servidor.SQLBrowseConnect returns an extended string of server properties.

SQL_COPT_SS_BROWSE_SERVERSQL_COPT_SS_BROWSE_SERVER

Este atributo se usa para personalizar el conjunto de resultados devuelto por SQLBrowseConnect.This attribute is used to customize the result set returned by SQLBrowseConnect. SQL_COPT_SS_BROWSE_SERVER especifica el nombre del servidor para el que SQLBrowseConnect devuelve la información.SQL_COPT_SS_BROWSE_SERVER specifies the server name for which SQLBrowseConnect returns the information.

ValorValue DescripciónDescription
computernamecomputername SQLBrowseConnect devuelve una lista de instancias de SQL ServerSQL Server en el equipo especificado.SQLBrowseConnect returns a list of instances of SQL ServerSQL Server on the specified computer. Las barras diagonales inversas dobles (\\) no debe usarse para el nombre del servidor (por ejemplo, en lugar de \\MyServer, MyServer se debe usar).Double backslashes (\\) should not be used for the server name (for example, instead of \\MyServer, MyServer should be used).
NULLNULL Predeterminado:Default. SQLBrowseConnect devuelve información para todos los servidores del dominio.SQLBrowseConnect returns information for all servers in the domain.

SQL_COPT_SS_CONCAT_NULLSQL_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.SQL_COPT_SS_CONCAT_NULL enables or disables the use of ISO handling of NULL when concatenating strings. Para obtener más información, vea SET CONCAT_NULL_YIELDS_NULL.For more information, see SET CONCAT_NULL_YIELDS_NULL.

ValorValue DescripciónDescription
SQL_CN_ONSQL_CN_ON Predeterminado:Default. La conexión usa el comportamiento ISO predeterminado para administrar valores NULL al concatenar cadenas.The connection uses ISO default behavior for handling NULL values when concatenating strings.
SQL_CN_OFFSQL_CN_OFF La conexión usa el comportamiento predeterminado definido por SQL ServerSQL Server para administrar valores NULL al concatenar cadenas.The connection uses SQL ServerSQL Server-defined behavior for handling NULL values when concatenating strings.

SQL_COPT_SS_ENCRYPTSQL_COPT_SS_ENCRYPT

Controla el cifrado de una conexión.Controls encryption for a connection.

El cifrado usa el certificado en el servidor.Encryption uses the certificate on the server. 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".This must be verified by a certificate authority, unless the connection attribute SQL_COPT_SS_TRUST_SERVER_CERTIFICATE is set to SQL_TRUST_SERVER_CERTIFICATE_YES or the connection string contains "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.If either of these conditions is true, a certificate generated and signed by the server can be used to encrypt the connection if no certificate is on the server.

ValorValue DescripciónDescription
SQL_EN_ONSQL_EN_ON La conexión se cifrará.The connection will be encrypted.
SQL_EN_OFFSQL_EN_OFF La conexión no se cifrará.The connection will not be encrypted. Ésta es la opción predeterminada.This is the default.

SQL_COPT_SS_ENLIST_IN_DTCSQL_COPT_SS_ENLIST_IN_DTC

El cliente llama a la Microsoft Distributed Transaction Coordinator (MS DTC) de OLE DB ITransactionDispenser:: BeginTransaction método para iniciar una transacción MS DTC y crear un objeto de transacción de MS DTC que representa el transacción.The client calls the Microsoft Distributed Transaction Coordinator (MS DTC) OLE DB ITransactionDispenser::BeginTransaction method to begin an MS DTC transaction and create an MS DTC transaction object that represents the transaction. La aplicación, a continuació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 de ODBC.The application then calls SQLSetConnectAttr with the SQL_COPT_SS_ENLIST_IN_DTC option to associate the transaction object with the ODBC connection. Toda la actividad de base de datos relacionada se realizará bajo la protección de la transacción MS DTC.All related database activity will be performed under the protection of the MS DTC transaction. La aplicación llama a SQLSetConnectAttr con SQL_DTC_DONE para finalizar la asociación DTC de la conexión.The application calls SQLSetConnectAttr with SQL_DTC_DONE to end the connection's DTC association.

ValorValue DescripciónDescription
Objeto DTC*DTC object* Objeto de transacción OLE de MS DTC que especifica la transacción que va exportarse a SQL ServerSQL Server.The MS DTC OLE transaction object that specifies the transaction to export to SQL ServerSQL Server.
SQL_DTC_DONESQL_DTC_DONE Delimita el final de una transacción DTC.Delimits the end of a DTC transaction.

SQL_COPT_SS_ENLIST_IN_XASQL_COPT_SS_ENLIST_IN_XA

Para iniciar una transacción con un procesador de transacciones (TP) compatible con XA, el cliente llama a the Open Group tx_begin función.To begin an XA transaction with an XA-compliant Transaction Processor (TP), the client calls the Open Group tx_begin function. La aplicación, a continuación, llama a SQLSetConnectAttr con el parámetro sql_copt_ss_enlist_in_xa establecido en TRUE para asociar la transacción XA a la conexión de ODBC.The application then calls SQLSetConnectAttr with a SQL_COPT_SS_ENLIST_IN_XA parameter of TRUE to associate the XA transaction with the ODBC connection. Toda la actividad de base de datos relacionada se realizará bajo la protección de la transacción XA.All related database activity will be performed under the protection of the XA transaction. Para finalizar una asociación XA con una conexión ODBC, el cliente debe llamar a SQLSetConnectAttr con el parámetro sql_copt_ss_enlist_in_xa establecido en FALSE.To end an XA association with an ODBC connection, the client must call SQLSetConnectAttr with a SQL_COPT_SS_ENLIST_IN_XA parameter of FALSE. Para obtener más información, vea la documentación de Microsoft DTC (Coordinador de transacciones distribuidas).For more information, see the Microsoft Distributed Transaction Coordinator documentation.

SQL_COPT_SS_FALLBACK_CONNECTSQL_COPT_SS_FALLBACK_CONNECT

Este atributo ya no se admite.This attribute is no longer supported.

SQL_COPT_SS_FAILOVER_PARTNERSQL_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 ServerSQL Server, y es una cadena de caracteres terminada en NULL que debe establecerse antes de que se realice la conexión inicial a SQL ServerSQL Server.Used to specify or retrieve the name of the failover partner used for database mirroring in SQL ServerSQL Server, and it is a null terminated character string which must be set before the connection to SQL ServerSQL Server is initially made.

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.After making the connection, the application can query this attribute using SQLGetConnectAttr to determine the identity of the failover partner. Si el servidor principal no tiene ningún asociado de conmutación por error, esta propiedad devolverá una cadena vacía.If the primary server has no failover partner this property will return an empty string. 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.This allows a smart application to cache the most recently determined backup server, but such applications should be aware that the information is only updated when the connection is first established, or reset, if pooled, and can become out of date for long term connections.

Para obtener más información, vea Usar la creación de reflejo de la base de datos.For more information, see Using Database Mirroring.

SQL_COPT_SS_INTEGRATED_SECURITYSQL_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.SQL_COPT_SS_INTEGRATED_SECURITY forces use of Windows Authentication for access validation on server login. Cuando se usa la autenticación de Windows, el controlador omite los valores de identificador y la contraseña de usuario proporcionados como parte de SQLConnect, SQLDriverConnect, o SQLBrowseConnectde procesamiento.When Windows Authentication is used, the driver ignores user identifier and password values provided as part of SQLConnect, SQLDriverConnect, or SQLBrowseConnect processing.

ValorValue DescripciónDescription
SQL_IS_OFFSQL_IS_OFF Predeterminado:Default. La autenticación de SQL ServerSQL Server se usa para validar el identificador de usuario y la contraseña en el inicio de sesión.SQL ServerSQL Server Authentication is used to validate user identifier and password on login.
SQL_IS_ONSQL_IS_ON El modo de autenticación de Windows se usa para validar los derechos de acceso a SQL ServerSQL Server de un usuario.Windows Authentication Mode is used to validate a user's access rights to the SQL ServerSQL Server.

SQL_COPT_SS_MARS_ENABLEDSQL_COPT_SS_MARS_ENABLED

Este atributo habilita o deshabilita MARS (Multiple Active Result Sets, conjuntos de resultados activos múltiples).This attribute enables or disables Multiple Active Result Sets (MARS). De forma predeterminada, MARS está deshabilitado.By default, MARS is disabled. Este atributo debe establecerse antes de realizar una conexión a SQL ServerSQL Server.This attribute should be set before making a connection to SQL ServerSQL Server. Una vez abierta la conexión a SQL ServerSQL Server, MARS seguirá habilitado o deshabilitado a lo largo de toda la conexión.Once the connection SQL ServerSQL Server is opened, MARS will remain enabled or disabled for the life of the connection.

ValorValue DescripciónDescription
SQL_MARS_ENABLED_NOSQL_MARS_ENABLED_NO Predeterminado:Default. MARS (Multiple Active Result Sets, conjuntos de resultados activos múltiples) está deshabilitado.Multiple Active Result Sets (MARS) is disabled.
SQL_MARS_ENABLED_YESSQL_MARS_ENABLED_YES MARS está habilitado.MARS is enabled.

Para obtener más información acerca de MARS, vea utilizando conjuntos de resultados activos múltiples (MARS).For more information about MARS, see Using Multiple Active Result Sets (MARS).

SQL_COPT_SS_MULTISUBNET_FAILOVERSQL_COPT_SS_MULTISUBNET_FAILOVER

Si la aplicación se conecta a un grupo de disponibilidad (AG) de Grupos de disponibilidad AlwaysOnAlways On availability groups en varias subredes, esta propiedad de conexión configura SQL ServerSQL Server Native Client para proporcionar una detección y conexión más rápidas con el servidor (actualmente) activo.If your application is connecting to a Grupos de disponibilidad AlwaysOnAlways On availability groups availability group (AG) on different subnets, this connection property configures SQL ServerSQL Server Native Client to provide faster detection of and connection to the (currently) active server. Por ejemplo:For example:

SQLSetConnectAttr(hdbc, SQL_COPT_SS_MULTISUBNET_FAILOVER, SQL_IS_ON, SQL_IS_INTEGER)  

Para obtener más información acerca de SQL ServerSQL Server compatibilidad del cliente nativo para Grupos de disponibilidad AlwaysOnAlways On availability groups AG, consulte SQL Server Native cliente admite para alta disponibilidad y recuperación ante desastres.For more information about SQL ServerSQL Server Native Client's support for Grupos de disponibilidad AlwaysOnAlways On availability groups AGs, see SQL Server Native Client Support for High Availability, Disaster Recovery.

ValorValue DescripciónDescription
SQL_IS_ONSQL_IS_ON SQL ServerSQL Server Native Client proporciona una reconexión más rápida si se produce una conmutación por error.Native Client provides faster reconnection if there is a failover.
SQL_IS_OFFSQL_IS_OFF SQL ServerSQL Server Native Client no proporcionará una reconexión más rápida si se produce una conmutación por error.Native Client will not provide faster reconnection if there is a failover.

SQL_COPT_SS_OLDPWDSQL_COPT_SS_OLDPWD

La expiración de contraseñas para la autenticación de SQL Server se introdujo en SQL Server 2005 (9.x)SQL Server 2005 (9.x).Password expiration for SQL Server Authentication was introduced in SQL Server 2005 (9.x)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.The SQL_COPT_SS_OLDPWD attribute has been added to allow the client to provide both the old and the new password for the connection. 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.When this property is set, the provider will not use the connection pool for the first connection or for subsequent connections, since the connection string will contain the "old password" which has now changed.

Para obtener más información, consulte cambiar las contraseñas mediante programación.For more information, see Changing Passwords Programmatically.

ValorValue DescripciónDescription
SQL_COPT_SS_OLD_PASSWORDSQL_COPT_SS_OLD_PASSWORD SQLPOINTER a una cadena de caracteres que contiene la contraseña anterior.SQLPOINTER to a character string containing the old password. Este valor es de solo escritura y debe establecerse antes de la conexión al servidor.This value is write-only, and must be set before connection to the server.

SQL_COPT_SS_PERF_DATASQL_COPT_SS_PERF_DATA

SQL_COPT_SS_PERF_DATA inicia o detiene el registro de datos de rendimiento.SQL_COPT_SS_PERF_DATA starts or stops performance data logging. El nombre del archivo de registro de datos debe establecerse antes de iniciar el registro de datos.The data log file name must be set prior to starting data logging. Vea SQL_COPT_SS_PERF_DATA_LOG a continuación.See SQL_COPT_SS_PERF_DATA_LOG below.

ValorValue DescripciónDescription
SQL_PERF_STARTSQL_PERF_START Inicia el muestreo de datos de rendimiento del controlador.Starts the driver sampling performance data.
SQL_PERF_STOPSQL_PERF_STOP Detiene el muestreo de datos de rendimiento por parte de los controladores.Stops the counters from sampling performance data.

Para obtener más información, consulte SQLGetConnectAttr.For more information, see SQLGetConnectAttr.

SQL_COPT_SS_PERF_DATA_LOGSQL_COPT_SS_PERF_DATA_LOG

SQL_COPT_SS_PERF_DATA_LOG asigna el nombre del archivo de registro utilizado para grabar datos de rendimiento.SQL_COPT_SS_PERF_DATA_LOG assigns the name of the log file used to record performance data. 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.The log file name is an ANSI or Unicode, null-terminated string depending upon application compilation. El StringLength argumento debe ser SQL_NTS.The StringLength argument should be SQL_NTS.

SQL_COPT_SS_PERF_DATA_LOG_NOWSQL_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.SQL_COPT_SS_PERF_DATA_LOG_NOW instructs the driver to write a statistics log entry to disk. El StringLength argumento debe ser SQL_NTS.The StringLength argument should be SQL_NTS.

SQL_COPT_SS_PERF_QUERYSQL_COPT_SS_PERF_QUERY

SQL_COPT_SS_PERF_QUERY inicia o detiene el registro de consultas de ejecución prolongada.SQL_COPT_SS_PERF_QUERY starts or stops logging for long running queries. El nombre del archivo de registro de consultas debe suministrarse antes de iniciar el registro.The query log file name must be supplied prior to starting logging. La aplicación puede definir la "ejecución prolongada" estableciendo el intervalo para el registro.The application can define "long running" by setting the interval for logging.

ValorValue DescripciónDescription
SQL_PERF_STARTSQL_PERF_START Inicia el registro de consultas de ejecución prolongada.Starts long running query logging.
SQL_PERF_STOPSQL_PERF_STOP Detiene el registro de las consultas de ejecución prolongada.Stops logging of long running queries.

Para obtener más información, consulte SQLGetConnectAttr.For more information, see SQLGetConnectAttr.

SQL_COPT_SS_PERF_QUERY_INTERVALSQL_COPT_SS_PERF_QUERY_INTERVAL

SQL_COPT_SS_PERF_QUERY_INTERVAL establece el umbral de registro de consultas en milisegundos.SQL_COPT_SS_PERF_QUERY_INTERVAL sets the query logging threshold in milliseconds. Las consultas que no se resuelven dentro del umbral se graban en el archivo de registro de consultas de ejecución prolongada.Queries that do not resolve within the threshold are recorded in the long running query log file. No existe un límite superior en el umbral de consultas.There is no upper limit on the query threshold. Un valor de umbral de consulta igual a cero da lugar al registro de todas las consultas.A query threshold value of zero causes logging of all queries.

SQL_COPT_SS_PERF_QUERY_LOGSQL_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.SQL_COPT_SS_PERF_QUERY_LOG assigns the name of a log file for recording long running query data. 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.The log file name is an ANSI or Unicode, null-terminated string depending upon application compilation. El StringLength argumento debe ser SQL_NTS o la longitud de la cadena en bytes.The StringLength argument should be SQL_NTS or the length of the string in bytes.

SQL_COPT_SS_PRESERVE_CURSORSSQL_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.This attribute allows you to query and set whether or not the connection will preserve the cursor(s) when you commit/rollback a transaction. El valor es SQL_PC_ON o SQL_PC_OFF.The setting is either SQL_PC_ON or SQL_PC_OFF. El valor predeterminado es SQL_PC_OFF.The default value is SQL_PC_OFF. Esta configuración controla si el controlador cerrará cursores automáticamente cuando se llama a SQLEndTran (o SQLTransact).This setting controls whether or not the driver will close the cursor(s) for you when you call SQLEndTran (or SQLTransact).

ValorValue DescripciónDescription
SQL_PC_OFFSQL_PC_OFF Predeterminado:Default. Los cursores se cierran cuando se confirma o revierte la transacción hacer una copia con SQLEndTran.Cursors are closed when transaction is committed or rolled back using SQLEndTran.
SQL_PC_ONSQL_PC_ON No se cierran los cursores cuando se confirma o revierte la transacción hacer una copia con SQLEndTran, excepto cuando se utiliza un cursor estático o de conjunto de claves en modo asincrónico.Cursors are not closed when transaction is committed or rolled back using SQLEndTran, except when using a static or keyset cursor in asynchronous mode. Si se emite una reversión antes de que se complete el rellenado del cursor, se cierra el cursor.If a rollback is issued while the population of the cursor is not complete, the cursor is closed.

SQL_COPT_SS_QUOTED_IDENTSQL_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.SQL_COPT_SS_QUOTED_IDENT allows quoted identifiers in ODBC and Transact-SQL statements submitted on the connection. Si se especifican identificadores entre comillas, el controlador ODBC de SQL ServerSQL Server Native Client admite nombres de objeto no válidos, como "Mi Tabla", que contiene un carácter de espacio en el identificador.By supplying quoted identifiers, the SQL ServerSQL Server Native Client ODBC driver allows otherwise invalid object names such as "My Table", which contains a space character in the identifier. Para obtener más información, vea SET QUOTED_IDENTIFIER.For more information, see SET QUOTED_IDENTIFIER.

ValorValue DescripciónDescription
SQL_QI_OFFSQL_QI_OFF La conexión SQL ServerSQL Server no permite identificadores entre comillas en el Transact-SQLTransact-SQL enviado.The SQL ServerSQL Server connection does not allow quoted identifiers in submitted Transact-SQLTransact-SQL.
SQL_QI_ONSQL_QI_ON Predeterminado:Default. La conexión permite identificadores entre comillas en el Transact-SQLTransact-SQL enviado.The connection allows quoted identifiers in submitted Transact-SQLTransact-SQL.

SQL_COPT_SS_TRANSLATESQL_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.SQL_COPT_SS_TRANSLATE causes the driver to translate characters between the client and server code pages as MBCS data is exchanged. El atributo afecta a solo los datos almacenados en SQL ServerSQL Server char, varchar, y texto columnas.The attribute affects only data stored in SQL ServerSQL Serverchar, varchar, and text columns.

ValorValue DescripciónDescription
SQL_XL_OFFSQL_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.The driver does not translate characters from one code page to another in character data exchanged between the client and the server.
SQL_XL_ONSQL_XL_ON Predeterminado:Default. 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.The driver translates characters from one code page to another in character data exchanged between the client and the server. 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.The driver automatically configures the character translation, determining the code page installed on the server and that in use by the client.

SQL_COPT_SS_TRUST_SERVER_CERTIFICATESQL_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.SQL_COPT_SS_TRUST_SERVER_CERTIFICATE causes the driver to enable or disable certificate validation when using encryption. 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.This attribute is a read/write value, but setting it after a connection has been established has no effect.

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.Client applications can query this property after a connection has been opened to determine the actual encryption and validation settings in use.

ValorValue DescripciónDescription
SQL_TRUST_SERVER_CERTIFICATE_NOSQL_TRUST_SERVER_CERTIFICATE_NO Predeterminado:Default. No está habilitado el cifrado sin validación de certificados.Encryption without certificate validation is not enabled.
SQL_TRUST_SERVER_CERTIFICATE_YESSQL_TRUST_SERVER_CERTIFICATE_YES Está habilitado el cifrado sin validación de certificados.Encryption without certificate validation is enabled.

SQL_COPT_SS_TXN_ISOLATIONSQL_COPT_SS_TXN_ISOLATION

SQL_COPT_SS_TXN_ISOLATION establece el atributo de aislamiento de instantáneas específico de SQL ServerSQL Server.SQL_COPT_SS_TXN_ISOLATION sets the SQL ServerSQL Server specific snapshot isolation attribute. El aislamiento de instantáneas no puede establecerse mediante SQL_ATTR_TXN_ISOLATION porque el valor es específico de SQL ServerSQL Server.Snapshot isolation cannot be set using SQL_ATTR_TXN_ISOLATION because the value is SQL ServerSQL Server specific. Sin embargo, puede recuperarse mediante SQL_ATTR_TXN_ISOLATION o SQL_COPT_SS_TXN_ISOLATION.However, it can be retrieved using either SQL_ATTR_TXN_ISOLATION or SQL_COPT_SS_TXN_ISOLATION.

ValorValue DescripciónDescription
SQL_TXN_SS_SNAPSHOTSQL_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.Indicates that from one transaction you cannot see changes made in other transactions and that you cannot see changes even when requerying.

Para obtener más información sobre el aislamiento de instantánea, vea trabajar con aislamiento de instantánea.For more information about snapshot isolation, see Working with Snapshot Isolation.

SQL_COPT_SS_USE_PROC_FOR_PREPSQL_COPT_SS_USE_PROC_FOR_PREP

Este atributo ya no se admite.This attribute is no longer supported.

SQL_COPT_SS_USER_DATASQL_COPT_SS_USER_DATA

SQL_COPT_SS_USER_DATA establece el puntero a los datos del usuario.SQL_COPT_SS_USER_DATA sets the user data pointer. Los datos del usuario son memoria propiedad del cliente y se registran por conexión.User data is client-owned memory recorded per connection.

Para obtener más información, consulte SQLGetConnectAttr.For more information, see SQLGetConnectAttr.

SQL_COPT_SS_WARN_ON_CP_ERRORSQL_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.This attribute determines whether you will get a warning if there is a loss of data during a code page conversion. Esto solo se aplica a los datos que provienen del servidor.This applies to only data coming from the server.

ValorValue DescripciónDescription
SQL_WARN_YESSQL_WARN_YES Generar advertencias cuando se produzca la pérdida de datos durante la conversión de la página de códigos.Generate warnings when data loss is encountered during codepage conversion.
SQL_WARN_NOSQL_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.(Default) Do not generate warnings when data loss is encountered during codepage conversion.

Compatibilidad de SQLSetConnectAttr con los nombres principales de servicio (SPN)SQLSetConnectAttr Support for Service Principal Names (SPNs)

SQLSetConnectAttr puede usarse para establecer el valor de los nuevos atributos de conexión SQL_COPT_SS_SERVER_SPN y SQL_COPT_SS_FAILOVER_PARTNER_SPN.SQLSetConnectAttr can be used to set the value of the new connection attributes SQL_COPT_SS_SERVER_SPN and 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".These attributes cannot be set when a connection is open; if you attempt to set these attributes when a connection is open, error HY011 is returned with the message "Operation invalid at this time". (SQLSetConnectOption también se puede usar para establecer estos valores.)(SQLSetConnectOption can also be used to set these values.)

Para obtener más información acerca de los SPN, vea Service Principal Names (SPN) en conexiones cliente (ODBC).For more information about SPNs, see Service Principal Names (SPNs) in Client Connections (ODBC).

SQL_COPT_SS_CONNECTION_DEADSQL_COPT_SS_CONNECTION_DEAD

Este atributo es de solo lectura.This is a read-only attribute.

Para obtener más información acerca de SQL_COPT_SS_CONNECTION_DEAD, vea SQLGetConnectAttr y conectarse a un origen de datos (ODBC).For more information about SQL_COPT_SS_CONNECTION_DEAD, see SQLGetConnectAttr and Connecting to a Data Source (ODBC).

EjemploExample

En este ejemplo se registran los datos de rendimiento.This example logs performance data.

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

Vea tambiénSee Also

SQLSetConnectAttr, función SQLSetConnectAttr Function
Detalles de implementación de API de ODBC ODBC API Implementation Details
Funciones de copia masiva Bulk Copy Functions
SET ANSI_NULLS (Transact-SQL) SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL) SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL) SET ANSI_WARNINGS (Transact-SQL)
SET CONCAT_NULL_YIELDS_NULL (Transact-SQL) SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL) SET QUOTED_IDENTIFIER (Transact-SQL)
Función SQLPrepare SQLPrepare Function
SQLGetInfoSQLGetInfo