Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Соответствие
Введенная версия: Соответствие стандартам ODBC 3.0: ISO 92
Сводка
SQLGetEnvAttr возвращает текущую настройку атрибута среды.
Syntax
SQLRETURN SQLGetEnvAttr(
SQLHENV EnvironmentHandle,
SQLINTEGER Attribute,
SQLPOINTER ValuePtr,
SQLINTEGER BufferLength,
SQLINTEGER * StringLengthPtr);
Arguments
EnvironmentHandle
[Ввод] Управление окружением.
Атрибут
[Ввод] Атрибут для поиска.
ValuePtr
[Выход] Указатель на буфер, в котором возвращается текущее значение атрибута, указанного Attribute.
Если ValuePtr равен NULL, StringLengthPtr всё равно вернёт общее количество байтов (за исключением символа null-termination для символьных данных), доступных для возврата в буфере, на который указывает ValuePtr.
BufferLength
[Ввод] Если ValuePtr указывает на строку символа, этот аргумент должен быть длиной *ValuePtr. Если *ValuePtr — целое число, BufferLength игнорируется. Если *ValuePtr — это строка Unicode (при вызове SQLGetEnvAttrW), то аргумент BufferLength должен быть чётным числом. Если значение атрибута не является строкой символа, BufferLength не используется.
StringLengthPtr
[Выход] Указатель на буфер, в который можно вернуть общее количество байт (за исключением символа нулевой терминации), доступных для возврата в *ValuePtr. Если значение атрибута — это строка символа, а количество доступных для возврата байтов превышает или равно BufferLength, данные в *ValuePtr усекаются до BufferLength минус длина символа null-termination и нулево-заканчиваются драйвером.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR или SQL_INVALID_HANDLE.
Diagnostics
Когда SQLGetEnvAttr возвращает SQL_ERROR или SQL_SUCCESS_WITH_INFO, соответствующее значение SQLSTATE можно получить, вызвав SQLGetDiagRec с HandleType SQL_HANDLE_ENV и HandleTypeEnvironmentHandle. В следующей таблице перечислены значения SQLSTATE, которые обычно возвращает SQLGetEnvAttr , и каждое из них объясняется в контексте этой функции; обозначение «(DM)» предшествует описаниям SQLSTATE, возвращаемым менеджером драйверов. Возвращаемый код, связанный с каждым значением SQLSTATE, SQL_ERROR, если не указано иное.
| SQLSTATE | Error | Description |
|---|---|---|
| 01000 | Общее предупреждение | Информационное сообщение для конкретного драйвера. (Функция возвращает SQL_SUCCESS_WITH_INFO.) |
| 01004 | Строковые данные, усеченные справа | Данные, возвращаемые в *ValuePtr , были усечены до BufferLength минус символ нулевой терминации. Длина неусечённого значения строки возвращается в *StringLengthPtr. (Функция возвращает SQL_SUCCESS_WITH_INFO.) |
| HY000 | Общая ошибка | Произошла ошибка, для которой не было определенного SQLSTATE и для которого не было определено значение SQLSTATE для конкретной реализации. Сообщение об ошибке, возвращаемое SQLGetDiagRec в буфере *MessageText , описывает ошибку и ее причину. |
| HY001 | Ошибка выделения памяти | Драйверу не удалось выделить память, необходимую для поддержки выполнения или завершения функции. |
| HY010 | Ошибка последовательности функций | (DM) SQL_ATTR_ODBC_VERSION ещё не зададено через SQLSetEnvAttr. Не обязательно устанавливать SQL_ATTR_ODBC_VERSION явно, если вы используете SQLAllocHandleStd. |
| HY013 | Ошибка управления памятью | Не удалось обработать вызов функции, так как к базовым объектам памяти не удалось получить доступ, возможно, из-за низкой памяти. |
| HY092 | Некорректный идентификатор атрибута/опции | Значение, указанное для аргумента Attribute , не было действительным для версии ODBC, поддерживаемой драйвером. |
| HY117 | Подключение приостановлено из-за неизвестного состояния транзакции. Разрешены только функции отключения и только для чтения. | (DM) Дополнительные сведения о приостановленном состоянии см. в статье SQLEndTran Function. |
| HYC00 | Необязательный компонент не реализован | Значение, указанное для аргумента Attribute , было действительным атрибутом среды ODBC для версии ODBC, поддерживаемой драйвером, но не поддерживалось самим драйвером. |
| IM001 | Драйвер не поддерживает эту функцию | (DM) Драйвер, соответствующий EnvironmentHandle , не поддерживает эту функцию. |
Comments
Список атрибутов см. SQLSetEnvAttr. Нет специфических атрибутов окружения, специфичных для водителя. Если Attribute указывает атрибут, возвращающий строку, ValuePtr должен быть указателем на буфер, в котором возвращается строка. Максимальная длина строки, включая байт нулевого окончания, будет BufferLength .
SQLGetEnvAttr может быть вызван в любой момент между выделением и освобождением дескриптора среды. Все атрибуты среды, успешно заданные приложением для среды, сохраняются до тех пор, пока SQLFreeHandle не будет вызван на EnvironmentHandle с HandleType SQL_HANDLE_ENV. В ODBC 3*.x* одновременно может быть выделено несколько дескрипторов среды. Атрибут окружающей среды в одной среде не затрагивается, когда была выделена другая среда.
Замечание
Атрибут SQL_ATTR_OUTPUT_NTS среды поддерживается приложениями, соответствующими стандартам. Когда вызывается SQLGetEnvAttr , менеджер драйверов ODBC 3*.x* всегда возвращает SQL_TRUE для этого атрибута. SQL_ATTR_OUTPUT_NTS можно настроить в SQL_TRUE только вызовом SQLSetEnvAttr.
Связанные функции
| Сведения о | Смотри |
|---|---|
| Возврат параметра атрибута подключения | Функция SQLGetConnectAttr |
| Возврат параметра атрибута инструкции | Функция SQLGetStmtAttr |
| Установка атрибута соединения | Функция SQLSetConnectAttr |
| Установка атрибута окружения | Функция SQLSetEnvAttr |
| Задание атрибута инструкции | Функция SQLSetStmtAttr |