Attributi di connessione

Gli attributi di connessione sono caratteristiche della connessione. Poiché ad esempio le transazioni si verificano al livello della connessione, il livello di isolamento delle transazioni è un attributo di connessione. Allo stesso modo, il timeout di accesso, ovvero il numero di secondi di attesa durante il tentativo di connessione prima del timeout, è un attributo di connessione.

Gli attributi di connessione vengono impostati con SQLSetConnectAttr e le relative impostazioni correnti recuperate con SQLGetConnectAttr. Se SQLSetConnectAttr viene chiamato prima del caricamento del driver, Gestione driver archivia gli attributi nella struttura di connessione e li imposta nel driver come parte del processo di connessione. Non vi è alcun requisito che stabilisce che un'applicazione debba impostare tutti gli attributi di connessione. Per tutti gli attributi di connessione sono disponibili valori predefiniti, alcuni dei quali specifici del driver.

Un attributo di connessione può essere impostato prima o dopo la connessione, oppure a seconda dell'attributo e del driver. Il timeout di accesso (SQL_ATTR_LOGIN_TIMEOUT) si applica al processo di connessione ed è efficace solo se impostato prima della connessione. Gli attributi che specificano se utilizzare la libreria di cursori ODBC (SQL_ATTR_ODBC_CURSORS) e le dimensioni del pacchetto di rete (SQL_ATTR_PACKET_SIZE) devono essere impostati prima della connessione, perché la libreria di cursori ODBC risiede tra Gestione driver e il driver e pertanto deve essere caricata prima del driver.

Gli attributi che consentono di specificare se un'origine dati è di sola lettura o di lettura/scrittura (SQL_ATTR_ACCESS_MODE) e il catalogo corrente (SQL_ATTR_CURRENT_CATALOG) possono essere impostati prima o dopo la connessione, a seconda del driver. Tuttavia, le applicazioni interoperabili li impostano prima della connessione perché alcuni driver non ne supportano la modifica dopo la connessione.

Alcuni attributi di connessione hanno un valore predefinito prima che venga stabilita la connessione, mentre altri no. Quelli che lo hanno sono SQL_ATTR_ACCESS_MODE, SQL_ATTR_AUTOCOMMIT, SQL_ATTR_LOGIN_TIMEOUT, SQL_ATTR_ODBC_CURSORS, SQL_ATTR_TRACE e SQL_ATTR_TRACEFILE.

Gli attributi di connessione traslazione (SQL_ATTR_TRANSLATE_DLL e SQL_ATTR_TRANSLATE_OPTION) devono essere impostati dopo la connessione.

Tutti gli altri attributi di connessione possono essere impostati in qualsiasi momento. Per ulteriori informazioni, vedere la descrizione della funzione SQLSetConnectAttr. Gli attributi di connessione non possono essere impostati a livello di ambiente da una chiamata a SQLSetEnvAttr.