SQLGetEnvAttr, funkcja

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.

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