Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Související funkce
| 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 |