SQLGetEnvAttr 함수
규칙
도입된 버전: ODBC 3.0 표준 준수: ISO 92
요약
SQLGetEnvAttr 는 환경 특성의 현재 설정을 반환합니다.
구문
SQLRETURN SQLGetEnvAttr(
SQLHENV EnvironmentHandle,
SQLINTEGER Attribute,
SQLPOINTER ValuePtr,
SQLINTEGER BufferLength,
SQLINTEGER * StringLengthPtr);
인수
EnvironmentHandle
[입력] 환경 핸들입니다.
특성
[입력] 검색할 특성입니다.
ValuePtr
[출력] 특성으로 지정된 특성의 현재 값을 반환할 버퍼에 대한 포인터입니다.
ValuePtr이 NULL인 경우 StringLengthPtr은 ValuePtr가 가리키는 버퍼에서 반환할 수 있는 총 바이트 수(문자 데이터의 null 종료 문자 제외)를 계속 반환합니다.
BufferLength
[입력] ValuePtr이 문자열을 가리키는 경우 이 인수는 *ValuePtr의 길이여야 합니다. *ValuePtr 이 정 수이면 BufferLength 는 무시됩니다. *ValuePtr이 유니코드 문자열인 경우(SQLGetEnvAttrW를 호출할 때) BufferLength 인수는 짝수여야 합니다. 특성 값이 문자열 이 아니면 BufferLength 는 사용되지 않습니다.
StringLengthPtr
[출력] *ValuePtr에서 반환할 수 있는 총 바이트 수(null 종료 문자 제외)를 반환할 버퍼에 대한 포인터입니다. 특성 값이 문자열이고 반환할 수 있는 바이트 수가 BufferLength보다 크거나 같으면 *ValuePtr의 데이터는 BufferLength에서 null 종료 문자의 길이를 뺀 값으로 잘리고 드라이버에서 null로 종료됩니다.
반품
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, SQL_ERROR 또는 SQL_INVALID_HANDLE.
진단
SQLGetEnvAttr가 SQL_ERROR 또는 SQL_SUCCESS_WITH_INFO 반환하는 경우 SQL_HANDLE_ENV HandleType 및 EnvironmentHandle 핸들을 사용하여 SQLGetDiagRec 를 호출하여 관련 SQLSTATE 값을 가져올 수 있습니다. 다음 표에서는 SQLGetEnvAttr에서 일반적으로 반환되는 SQLSTATE 값을 나열하고 이 함수의 컨텍스트에서 각각에 대해 설명합니다. 표기법 "(DM)"은 드라이버 관리자가 반환한 SQLSTATE에 대한 설명 앞에 나와 있습니다. 달리 명시되지 않는 한 각 SQLSTATE 값과 연결된 반환 코드는 SQL_ERROR.
SQLSTATE | Error | 설명 |
---|---|---|
01000 | 일반 경고 | 드라이버 관련 정보 메시지입니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다. |
01004 | 문자열 데이터, 오른쪽 잘림 | *ValuePtr에서 반환된 데이터는 Null 종료 문자를 뺀 BufferLength로 잘렸습니다. 신뢰할 수 없는 문자열 값의 길이는 *StringLengthPtr에서 반환됩니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다. |
HY000 | 일반 오류 | 특정 SQLSTATE가 없고 구현별 SQLSTATE가 정의되지 않은 오류가 발생했습니다. *MessageText 버퍼의 SQLGetDiagRec에서 반환된 오류 메시지는 오류와 그 원인을 설명합니다. |
HY001 | 메모리 할당 오류 | 드라이버가 함수 실행 또는 완료를 지원하는 데 필요한 메모리를 할당할 수 없습니다. |
HY010 | 함수 시퀀스 오류 | (DM) SQL_ATTR_ODBC_VERSION SQLSetEnvAttr를 통해 아직 설정되지 않았습니다. SQLAllocHandleStd를 사용하는 경우 SQL_ATTR_ODBC_VERSION 명시적으로 설정할 필요가 없습니다. |
HY013 | 메모리 관리 오류 | 메모리 조건이 낮기 때문에 기본 메모리 개체에 액세스할 수 없기 때문에 함수 호출을 처리할 수 없습니다. |
HY092 | 잘못된 특성/옵션 식별자 | 인수 특성 에 지정된 값이 드라이버에서 지원하는 ODBC 버전에 대해 유효하지 않습니다. |
HY117 | 알 수 없는 트랜잭션 상태로 인해 연결이 일시 중단됩니다. 연결 끊기 및 읽기 전용 함수만 허용됩니다. | (DM) 일시 중단 상태에 대한 자세한 내용은 SQLEndTran 함수를 참조 하세요. |
HYC00 | 선택적 기능이 구현되지 않음 | 인수 특성 에 지정된 값은 드라이버에서 지원하는 ODBC 버전의 유효한 ODBC 환경 특성이지만 드라이버에서 지원되지 않았습니다. |
IM001 | 드라이버는 이 함수를 지원하지 않습니다. | (DM) EnvironmentHandle에 해당하는 드라이버는 함수를 지원하지 않습니다. |
주석
특성 목록은 SQLSetEnvAttr를 참조하세요. 드라이버별 환경 특성이 없습니다. 특성이 문자열을 반환하는 특성을 지정하는 경우 ValuePtr은 문자열을 반환할 버퍼에 대한 포인터여야 합니다. null 종료 바이트를 포함하여 문자열의 최대 길이는 BufferLength 바이트입니다.
SQLGetEnvAttr 은 할당과 환경 핸들 해제 사이에 언제든지 호출할 수 있습니다. 환경에 대한 애플리케이션에서 설정한 모든 환경 특성은 SQL_HANDLE_ENV HandleType을 사용하여 EnvironmentHandle에서 SQLFreeHandle이 호출될 때까지 유지됩니다. ODBC 3*.x*에서 둘 이상의 환경 핸들을 동시에 할당할 수 있습니다. 한 환경의 환경 특성은 다른 환경이 할당된 경우 영향을 받지 않습니다.
참고 항목
SQL_ATTR_OUTPUT_NTS 환경 특성은 표준 규격 애플리케이션에서 지원됩니다. SQLGetEnvAttr이 호출되면 ODBC 3*.x* 드라이버 관리자는 항상 이 특성에 대한 SQL_TRUE 반환합니다. SQL_ATTR_OUTPUT_NTS SQLSetEnvAttr 호출로만 SQL_TRUE 설정할 수 있습니다.
관련 함수
추가 정보 | 참조 |
---|---|
연결 특성 설정 반환 | SQLGetConnectAttr 함수 |
문 특성의 설정 반환 | SQLGetStmtAttr 함수 |
연결 특성 설정 | SQLSetConnectAttr 함수 |
환경 특성 설정 | SQLSetEnvAttr 함수 |
문 특성 설정 | SQLSetStmtAttr 함수 |