Funzione SQLGetEnvAttr

Conformità
Versione introdotta: Conformità agli standard ODBC 3.0: ISO 92

Sommario
SQLGetEnvAttr restituisce l'impostazione corrente di un attributo dell'ambiente.

Sintassi

  
SQLRETURN SQLGetEnvAttr(  
     SQLHENV        EnvironmentHandle,  
     SQLINTEGER     Attribute,  
     SQLPOINTER     ValuePtr,  
     SQLINTEGER     BufferLength,  
     SQLINTEGER *   StringLengthPtr);  

Arguments

EnvironmentHandle
[Input] Controllo ambientale.

Attributo
[Input] Attribuisce per recuperare.

ValuePtr
[Output] Puntatore a un buffer in cui restituire il valore corrente dell'attributo specificato da Attributo.

Se ValuePtr è NULL, StringLengthPtr restituirà comunque il numero totale di byte (escluso il carattere di null-termination per i dati del carattere) disponibili nel buffer indicato da ValuePtr.

BufferLength
[Input] Se ValuePtr punta a una stringa di caratteri, questo argomento dovrebbe essere della lunghezza di *ValuePtr. Se *ValuePtr è un intero, BufferLength viene ignorato. Se *ValuePtr è una stringa Unicode (quando si chiama SQLGetEnvAttrW), l'argomento BufferLength deve essere un numero pari. Se il valore dell'attributo non è una stringa di carattere, BufferLength non viene utilizzato.

StringLengthPtr
[Output] Un puntatore a un buffer in cui restituire il numero totale di byte (escluso il carattere di terminazione nulla) disponibili da restituire in *ValuePtr. Se il valore dell'attributo è una stringa di caratteri e il numero di byte disponibili da restituire è maggiore o uguale a BufferLength, i dati in *ValuePtr vengono troncati a BufferLength meno la lunghezza di un carattere di null-termination e vengono terminati null dal driver.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR o SQL_INVALID_HANDLE.

Diagnostica

Quando SQLGetEnvAttr restituisce SQL_ERROR o SQL_SUCCESS_WITH_INFO, un valore SQLSTATE associato può essere ottenuto chiamando SQLGetDiagRec con un HandleType di SQL_HANDLE_ENV e un Handle di EnvironmentHandle. La tabella seguente elenca i valori SQLSTATE comunemente restituiti da SQLGetEnvAttr e spiega ciascuno nel contesto di questa funzione; la notazione "(DM)" precede le descrizioni degli stati SQL restituite dal Driver Manager. Il codice restituito associato a ogni valore SQLSTATE è SQL_ERROR, a meno che non sia specificato diversamente.

SQLSTATE Error Description
01000 Avviso generale Messaggio informativo specifico del driver. (La funzione restituisce SQL_SUCCESS_WITH_INFO.
01004 Dati stringa, troncati a destra I dati restituiti in *ValuePtr sono stati troncati per essere BufferLength meno il carattere di terminazione nulla. La lunghezza del valore della stringa non runcata viene restituita in *StringLongPtr. (La funzione restituisce SQL_SUCCESS_WITH_INFO.
HY000 Errore generale Si è verificato un errore per il quale non è stato specificato SQLSTATE e per il quale non è stato definito alcun SQLSTATE specifico dell'implementazione. Il messaggio di errore restituito da SQLGetDiagRec nel buffer *MessageText descrive l'errore e la relativa causa.
HY001 Errore di allocazione della memoria Il driver non è riuscito ad allocare memoria necessaria per supportare l'esecuzione o il completamento della funzione.
HY010 Errore della sequenza di funzioni (DM) SQL_ATTR_ODBC_VERSION non è ancora stato impostato tramite SQLSetEnvAttr. Non è necessario impostare SQL_ATTR_ODBC_VERSION esplicitamente se si usa SQLAllocHandleStd.
HY013 Errore di gestione della memoria Impossibile elaborare la chiamata di funzione perché non è stato possibile accedere agli oggetti di memoria sottostanti, probabilmente a causa di condizioni di memoria insufficiente.
HY092 Identificatore di attributo/opzione invalido Il valore specificato per l'argomento Attributo non era valido per la versione di ODBC supportata dal driver.
HY117 La connessione viene sospesa a causa dello stato sconosciuto della transazione. Sono consentite solo funzioni disconnesse e di sola lettura. (DM) Per altre informazioni sullo stato sospeso, vedere Funzione SQLEndTran.
HYC00 Funzionalità facoltativa non implementata Il valore specificato per l'attributo dell'argomento Attributo era valido per l'ambiente ODBC per la versione di ODBC supportata dal driver ma non supportata dal driver.
IM001 Il driver non supporta questa funzione (DM) Il driver corrispondente all'EnvironmentHandle non supporta la funzione.

Comments

Per un elenco di attributi, vedi SQLSetEnvAttr. Non ci sono attributi ambientali specifici per il conducente. Se Attribute specifica un attributo che restituisce una stringa, ValuePtr deve essere un puntatore a un buffer in cui restituire la stringa. La lunghezza massima della stringa, incluso il byte di terminazione nulla, sarà byte BufferLength .

SQLGetEnvAttr può essere chiamato in qualsiasi momento tra l'allocazione e il liberamento di un handle di ambiente. Tutti gli attributi dell'ambiente impostati con successo dall'applicazione per l'ambiente persistono fino a quando SQLFreeHandle viene chiamato sull'EnvironmentHandle con un HandleType di SQL_HANDLE_ENV. In ODBC 3*.x*, più handle di ambiente possono essere allocati simultaneamente. Un attributo di ambiente su un ambiente non è influenzato quando un altro ambiente è stato assegnato.

Note

L'attributo SQL_ATTR_OUTPUT_NTS ambiente è supportato da applicazioni conformi agli standard. Quando SQLGetEnvAttr viene chiamato, il Driver Manager ODBC 3*.x* restituisce sempre SQL_TRUE per questo attributo. SQL_ATTR_OUTPUT_NTS può essere impostato per SQL_TRUE solo tramite una chiamata a SQLSetEnvAttr.

Per informazioni su Vedi
Restituzione dell'impostazione di un attributo di connessione Funzione SQLGetConnectAttr
Restituzione dell'impostazione di un attributo di istruzione Funzione SQLGetStmtAttr
Impostazione di un attributo di connessione Funzione SQLSetConnectAttr
Impostazione di un attributo ambiente Funzione SQLSetEnvAttr
Impostazione di un attributo di istruzione Funzione SQLSetStmtAttr