Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Соответствие
Введенная версия: Соответствие стандартам 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 |