Atributos de conexión
Los atributos de conexión son características de la conexión. Por ejemplo, dado que las transacciones se producen en el nivel de conexión, el nivel de aislamiento de transacción es un atributo de conexión. De igual forma, el tiempo de espera del inicio de sesión, o número de segundos que se espera mientras se intenta conectar antes de agotar el tiempo, es un atributo de conexión.
Los atributos de conexión se establecen con SQLSetConnectAttr y su configuración actual se recupera con SQLGetConnectAttr. Si se llama a SQLSetConnectAttr antes de cargar el controlador, el Administrador de controladores almacena los atributos en su estructura de conexión y los establece en el controlador como parte del proceso de conexión. No es necesario que una aplicación establezca ningún atributo de conexión; todos los atributos de conexión tienen valores predeterminados y algunos son específicos del controlador.
Un atributo de conexión se puede establecer antes o después de la conexión, o bien, en función del atributo y el controlador. El tiempo de espera de inicio de sesión (SQL_ATTR_LOGIN_TIMEOUT) se aplica al proceso de conexión y solo es efectivo si se establece antes de conectarse. Los atributos que especifican si se debe usar la biblioteca de cursores ODBC (SQL_ATTR_ODBC_CURSORS) y el tamaño del paquete de red (SQL_ATTR_PACKET_SIZE) deben establecerse antes de conectarse, ya que la biblioteca de cursores ODBC reside entre el Administrador de controladores y el controlador y, por tanto, debe cargarse antes del controlador.
Los atributos para especificar si un origen de datos es de solo lectura o de lectura y escritura (SQL_ATTR_ACCESS_MODE) y el catálogo actual (SQL_ATTR_CURRENT_CATALOG) se pueden establecer antes o después de conectarse, en función del controlador. Sin embargo, las aplicaciones interoperables los establecen antes de conectarse porque algunos controladores no admiten cambiarlos después de conectarse.
Algunos atributos de conexión tienen un valor predeterminado antes de que se establezca la conexión, mientras que otros no. Los que sí tienen son: SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE y SQL_ATTR_TRACEFILE.
Los atributos de conexión de traducción (SQL_ATTR_TRANSLATE_DLL y SQL_ATTR_TRANSLATE_OPTION) deben establecerse después de conectarse.
Todos los demás atributos de conexión se pueden establecer en cualquier momento. Para más información, vea la descripción de la función SQLSetConnectAttr. (Los atributos de conexión no se pueden establecer a nivel del entorno mediante una llamada a SQLSetEnvAttr).