Funkce SQLGetEnvAttr

Soulad
Představená verze: ODBC 3.0 Shoda s normami: ISO 92

Summary
SQLGetEnvAttr vrací aktuální nastavení atributu prostředí.

Syntax

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

Arguments

EnvironmentHandle
[Vstup] Ovládání prostředí.

Atribut
[Vstup] Atribut pro získání atributu.

ValuePtr
[Výstup] Ukazatel na buffer, do kterého se vrátí aktuální hodnota atributu určeného atributem.

Pokud je ValuePtr NULL, StringLengthPtr stále vrátí celkový počet bajtů (bez znaku null-termination pro znaková data), které lze vrátit v bufferu na který ukazuje ValuePtr.

BufferLength
[Vstup] Pokud ValuePtr ukazuje na řetězec znaků, tento argument by měl být délka *ValuePtr. Pokud je *ValuePtr celé číslo, BufferLength se ignoruje. Pokud je *ValuePtr Unicode řetězec (při volání SQLGetEnvAttrW), musí být argument BufferLength sudé číslo. Pokud hodnota atributu není znakový řetězec, BufferLength se nepoužívá.

StringLengthPtr
[Výstup] Ukazatel na buffer, do kterého lze vrátit celkový počet bajtů (bez znaku nulového ukončení), které lze vrátit v *ValuePtr. Pokud je hodnota atributu znakový řetězec a počet bajtů dostupných k vrácení je větší nebo roven BufferLength, data v *ValuePtr jsou zkrácena na BufferLength minus délka znaku null-termination a jsou null-terminována ovladačem.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR nebo SQL_INVALID_HANDLE.

Diagnostika

Když SQLGetEnvAttr vrátí SQL_ERROR nebo SQL_SUCCESS_WITH_INFO, lze získat přidruženou hodnotu SQLSTATE vyvolání SQLGetDiagRec pomocí HandleType of SQL_HANDLE_ENV a Handleof EnvironmentHandle. Následující tabulka uvádí hodnoty SQLSTATE, které SQLGetEnvAttr běžně vrací, a vysvětluje každou z nich v kontextu této funkce; notace "(DM)" předchází popisům SQLstavů vráceným Správcem ovladačů. Návratový kód přidružený ke každé hodnotě SQLSTATE je SQL_ERROR, pokud není uvedeno jinak.

SQLSTATE Error Description
01000 Obecné upozornění Informační zpráva specifická pro řidiče (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
01004 Řetězcová data, zkrácená vpravo Data vrácená v *ValuePtr byla zkrácena na BufferLength minus znak null-termination. Délka hodnoty nezkráceného řetězce se vrací v *StringLengthPtr. (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
HY000 Obecná chyba Došlo k chybě, pro kterou nebyla definována žádná specifická funkce SQLSTATE a pro kterou nebyla definována žádná implementace sqlSTATE. Chybová zpráva vrácená nástrojem SQLGetDiagRec v vyrovnávací paměti *MessageText popisuje chybu a její příčinu.
HY001 Chyba přidělení paměti Ovladač nemohl přidělit paměť potřebnou k podpoře provádění nebo dokončení funkce.
HY010 Chyba posloupnosti funkcí (DM) SQL_ATTR_ODBC_VERSION zatím nebylo nastaveno přes SQLSetEnvAttr. Nemusíte SQL_ATTR_ODBC_VERSION explicitně nastavovat, pokud používáte SQLAllocHandleStd.
HY013 Chyba správy paměti Volání funkce nelze zpracovat, protože základní objekty paměti nelze získat přístup, pravděpodobně kvůli nedostatku paměti.
HY092 Neplatný identifikátor atributu/opce Hodnota určená pro argument Attribute nebyla platná pro verzi ODBC podporovanou ovladačem.
HY117 Připojení je pozastaveno kvůli neznámému stavu transakce. Jsou povoleny pouze funkce pro odpojení a jen pro čtení. (DM) Další informace o pozastaveném stavu naleznete v tématu FUNKCE SQLEndTran.
HYC00 Nepovinná funkce není implementována. Hodnota určená pro argument Attribute byla platným atributem prostředí ODBC pro verzi ODBC podporovanou ovladačem, ale nepodporována ovladačem.
IM001 Ovladač tuto funkci nepodporuje. (DM) Ovladač odpovídající EnvironmentHandle tuto funkci nepodporuje.

Comments

Pro seznam atributů viz SQLSetEnvAttr. Nejsou zde žádné specifické atributy prostředí pro ovladače. Pokud Attribute specifikuje atribut, který vrací řetězec, ValuePtr musí být ukazatelem na buffer, do kterého se řetězec vrátí. Maximální délka řetězce včetně bajtu null-termination bude BufferLengths bajtů.

SQLGetEnvAttr lze volat kdykoli mezi alokací a uvolněním prostředí handle. Všechny atributy prostředí úspěšně nastavené aplikací pro dané prostředí přetrvávají až do momentu, kdy je SQLFreeHandle vyvolán v EnvironmentHandle pomocí HandleType SQL_HANDLE_ENV. V ODBC 3*.x* může být současně alokováno více než jeden handle prostředí. Atribut prostředí v jednom prostředí není ovlivněn, pokud je alokováno jiné prostředí.

Note

Atribut SQL_ATTR_OUTPUT_NTS prostředí je podporován aplikacemi splňujícími standardy. Když je volán SQLGetEnvAttr , správce ovladačů ODBC 3*.x* vždy vrátí SQL_TRUE pro tento atribut. SQL_ATTR_OUTPUT_NTS lze nastavit na SQL_TRUE pouze voláním do SQLSetEnvAttr.

Informace o Podívejte se
Vrácení nastavení atributu připojení FUNKCE SQLGetConnectAttr
Vrácení nastavení atributu příkazu FUNKCE SQLGetStmtAttr
Nastavení atributu spojení SQLSetConnectAttr – funkce
Nastavení atributu prostředí SQLSetEnvAttr Function
Nastavení atributu příkazu FUNKCE SQLSetStmtAttr