Atributos de conexão
Os atributos da conexão são características da conexão. Por exemplo, pelo fato de as transações ocorrerem no nível da conexão, o nível de isolamento da transação é um atributo de conexão. De modo semelhante, o tempo limite de logon, ou número de segundos para aguardar uma tentativa de conexão antes de atingir o tempo limite, é um atributo de conexão.
Os atributos de conexão são definidos com SQLSetConnectAttr e suas configurações atuais recuperadas com SQLGetConnectAttr. Se SQLSetConnectAttr for chamado antes que o driver seja carregado, o Gerenciador de Driver armazenará os atributos em sua estrutura de conexão e os definirá no driver como parte do processo de conexão. Não há nenhum requisito de que um aplicativo tenha definido qualquer atributo de conexão; todos os atributos de conexão têm padrões e alguns são específicos do driver.
Um atributo de conexão pode ser definido antes ou depois da conexão, ou qualquer um, dependendo do atributo e do driver. O tempo limite de login (SQL_ATTR_LOGIN_TIMEOUT) se aplica ao processo de conexão e é efetivo somente se definido antes da conexão. Os atributos que especificam se a biblioteca de cursor (SQL_ATTR_ODBC_CURSORS) e o tamanho do pacote de rede (SQL_ATTR_PACKET_SIZE) devem ser definidos antes da conexão, porque a biblioteca de cursor ODBC reside entre o Gerenciador de Driver e o driver e, portanto, deve ser carregada antes do driver.
Os atributos para especificar se uma fonte de dados é somente leitura ou leitura-gravação (SQL_ATTR_ACCESS_MODE) e o catálogo atual (SQL_ATTR_CURRENT_CATALOG) podem ser definidos antes ou depois da conexão, dependendo do driver. No entanto, os aplicativos interoperáveis os definem antes da conexão porque alguns drivers não oferecem suporte à alteração deles após a conexão.
Alguns atributos de conexão têm um padrão antes da conexão ser feita, enquanto outros não. Os que o fazem são SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE e SQL_ATTR_TRACEFILE.
Os atributos de conexão de tradução (SQL_ATTR_TRANSLATE_DLL e SQL_ATTR_TRANSLATE_OPTION) devem ser definidos após a conexão.
Todos os outros atributos de conexão podem ser definidos a qualquer momento. Para obter mais informações, consulte a descrição da função SQLSetConnectAttr. (Os atributos de conexão não podem ser definidos no nível do ambiente por uma chamada para SQLSetEnvAttr.)