Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zgodność
Wprowadzona wersja: Zgodność z normami ODBC 3.0: ISO 92
Podsumowanie
SQLGetEnvAttr zwraca aktualne ustawienie atrybutu środowiska.
Syntax
SQLRETURN SQLGetEnvAttr(
SQLHENV EnvironmentHandle,
SQLINTEGER Attribute,
SQLPOINTER ValuePtr,
SQLINTEGER BufferLength,
SQLINTEGER * StringLengthPtr);
Arguments
EnvironmentHandle
[Input] Zarządzanie środowiskiem.
Atrybut
[Input] Przypisuj do pobrania.
Valueptr
[Wyjście] Wskaż do bufora, w którym zwraca aktualną wartość atrybutu określonego przez Attribute.
Jeśli ValuePtr jest NULL, StringLengthPtr nadal zwraca łączną liczbę bajtów (z wyłączeniem znaku zakończenia zera dla danych znaków) dostępnych do zwrócenia w buforze wskazanym przez ValuePtr.
BufferLength
[Input] Jeśli ValuePtr wskazuje na ciąg znaków, ten argument powinien mieć długość *ValuePtr. Jeśli *ValuePtr jest liczbą całkowitą, BufferLength jest ignorowany. Jeśli *ValuePtr jest ciągiem Unicode (wywołując SQLGetEnvAttrW), argument BufferLength musi mieć parzystą liczbę. Jeśli wartość atrybutu nie jest ciągiem znaków, BufferLength nie jest używany.
StringLengthPtr
[Wyjście] Wskaźnik do bufora, w którym można zwrócić łączną liczbę bajtów (z wyłączeniem znaku zakończenia zerowego) dostępnych do zwrotu w *ValuePtr. Jeśli wartość atrybutu to ciąg znaków, a liczba bajtów dostępnych do zwrócenia jest większa lub równa BufferLength, dane w *ValuePtr są obcinane do BufferLength minus długość znaku zakończenia zerowego i są zakończane przez sterownik.
Zwroty
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR lub SQL_INVALID_HANDLE.
Diagnostyka
Gdy SQLGetEnvAttr zwraca SQL_ERROR lub SQL_SUCCESS_WITH_INFO, można uzyskać powiązaną wartość SQLSTATE, wywołując SQLGetDiagRec z HandleType SQL_HANDLE_ENV oraz Handleof EnvironmentHandle. Poniższa tabela przedstawia wartości SQLSTATE najczęściej zwracane przez SQLGetEnvAttr i wyjaśnia każdą z nich w kontekście tej funkcji; notacja "(DM)" poprzedza opisy stanów SQL zwracanych przez Menedżera Sterowników. Kod zwracany skojarzony z każdą wartością SQLSTATE jest SQL_ERROR, chyba że określono inaczej.
| SQLSTATE | Error | Description |
|---|---|---|
| 01000 | Ostrzeżenie ogólne | Komunikat informacyjny specyficzny dla sterownika. (Funkcja zwraca SQL_SUCCESS_WITH_INFO). |
| 01004 | Dane ciągów, prawe obcięte | Dane zwracane w *ValuePtr zostały obcięte do BufferLength minus znak zakończenia zerowego. Długość wartości nieobciętego ciągu jest zwracana w *StringLengthPtr. (Funkcja zwraca SQL_SUCCESS_WITH_INFO). |
| HY000 | Błąd ogólny | Wystąpił błąd, dla którego nie było określonego stanu SQLSTATE i dla którego nie zdefiniowano parametru SQLSTATE specyficznego dla implementacji. Komunikat o błędzie zwrócony przez element SQLGetDiagRec w buforze *MessageText opisuje błąd i jego przyczynę. |
| HY001 | Błąd alokacji pamięci | Sterownik nie może przydzielić pamięci wymaganej do obsługi wykonywania lub ukończenia funkcji. |
| HY010 | Błąd sekwencji funkcji | (DM) SQL_ATTR_ODBC_VERSION nie został jeszcze ustawiony przez SQLSetEnvAttr. Nie musisz SQL_ATTR_ODBC_VERSION ustawiać wprost, jeśli używasz SQLAllocHandleStd. |
| HY013 | Błąd zarządzania pamięcią | Nie można przetworzyć wywołania funkcji, ponieważ nie można uzyskać dostępu do bazowych obiektów pamięci, prawdopodobnie z powodu niskich warunków pamięci. |
| HY092 | Nieprawidłowy identyfikator atrybutu/opcji | Wartość określona dla atrybutu argumentu nie była ważna dla wersji ODBC obsługiwanej przez sterownik. |
| HY117 | Połączenie jest zawieszone z powodu nieznanego stanu transakcji. Dozwolone są tylko funkcje rozłączania i tylko do odczytu. | (DM) Aby uzyskać więcej informacji na temat stanu wstrzymania, zobacz SQLEndTran, funkcja. |
| HYC00 | Opcjonalna funkcja nie zaimplementowana | Wartość podała dla atrybutu argumentu była prawidłowym atrybutem środowiskowym ODBC dla wersji ODBC obsługiwanej przez sterownik, ale nie obsługiwanej przez sam sterownik. |
| IM001 | Sterownik nie obsługuje tej funkcji | (DM) Sterownik odpowiadający EnvironmentHandle nie obsługuje tej funkcji. |
Comments
Listę atrybutów można znaleźć w SQLSetEnvAttr. Nie ma żadnych atrybutów środowiska specyficznych dla sterowników. Jeśli Attribute określa atrybut, który zwraca ciąg znaków, ValuePtr musi być wskaźnikiem do bufora, w którym można zwrócić ten ciąg. Maksymalna długość ciągu łańcucha, wliczając bajt zakończenia zerowego, będzie wynosić bajty BufferLength .
SQLGetEnvAttr można wywołać w dowolnym momencie między alokacją a uwolnieniem uchwytu środowiska. Wszystkie atrybuty środowiska ustaliwe przez aplikację dla środowiska pozostają do momentu, gdy SQLFreeHandle zostanie wywołany na EnvironmentHandle z HandleType SQL_HANDLE_ENV. W ODBC 3*.x* można jednocześnie przydzielać więcej niż jeden uchwyt środowiska. Atrybut środowiska w jednym środowisku nie jest zmieniony, gdy inne środowisko zostało przydzielone.
Note
Atrybut SQL_ATTR_OUTPUT_NTS środowiska jest obsługiwany przez aplikacje zgodne ze standardami. Gdy wywoływane jest SQLGetEnvAttr , menedżer sterowników ODBC 3*.x* zawsze zwraca SQL_TRUE dla tego atrybutu. SQL_ATTR_OUTPUT_NTS można ustawić na SQL_TRUE tylko przez wywołanie SQLSetEnvAttr.
Powiązane funkcje
| Aby uzyskać informacje o | Zobacz |
|---|---|
| Zwracanie ustawienia atrybutu połączenia | SQLGetConnectAttr, funkcja |
| Zwracanie ustawienia atrybutu instrukcji | SQLGetStmtAttr, funkcja |
| Ustawianie atrybutu połączenia | SQLSetConnectAttr, funkcja |
| Ustawianie atrybutu środowiskowego | SQLSetEnvAttr Function |
| Ustawianie atrybutu instrukcji | SQLSetStmtAttr, funkcja |