SQLGetEnvAttr 함수

규칙
도입된 버전: ODBC 3.0 표준 준수: ISO 92

요약
SQLGetEnvAttr은 환경 특성의 현재 설정을 반환합니다.

구문

  
SQLRETURN SQLGetEnvAttr(  
     SQLHENV        EnvironmentHandle,  
     SQLINTEGER     Attribute,  
     SQLPOINTER     ValuePtr,  
     SQLINTEGER     BufferLength,  
     SQLINTEGER *   StringLengthPtr);  

인수

EnvironmentHandle
[입력] 환경 핸들입니다.

Attribute
[입력] 검색할 특성입니다.

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 HandleTypeEnvironmentHandle 핸들을 사용하여 SQLGetDiagRec를 호출하여 관련 SQLSTATE 값을 가져올 수 있습니다. 다음 표에서는 SQLGetEnvAttr에서 일반적으로 반환되는 SQLSTATE 값을 나열하고 이 함수의 컨텍스트에서 각각에 대해 설명합니다. "(DM)"이라는 표기판은 드라이버 관리자가 반환한 SQLSTATEs에 대한 설명 앞에 다가서야 합니다. 다른 설명이 없는 한 각 SQLSTATE 값과 연결된 반환 코드는 SQL_ERROR.

SQLSTATE Error Description
01000 일반 경고 드라이버 관련 정보 메시지입니다. (함수는 SQL_SUCCESS_WITH_INFO 반환합니다.)
01004 문자열 데이터, 오른쪽 잘리기 * ValuePtr에서 반환된 데이터는 BufferLength에서 null 종료 문자를 뺀 값으로 잘렸습니다. 신뢰할 수 없는 문자열 값의 길이는 *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 잘못된 특성/옵션 식별자 Attribute 인수에 지정된 값이 드라이버에서 지원하는 ODBC 버전에 유효하지 않습니다.
HY117 알 수 없는 트랜잭션 상태로 인해 연결이 일시 중단되었습니다. 연결 끊기 및 읽기 전용 함수만 허용됩니다. (DM) 일시 중단된 상태에 대한 자세한 내용은 SQLEndTran 함수 를 참조하세요.
HYC00 선택적 기능이 구현되지 않음 Attribute 인수에 지정된 값이 드라이버에서 지원하는 ODBC 버전의 유효한 ODBC 환경 특성이지만 드라이버에서 지원되지 않았습니다.
IM001 드라이버가 이 함수를 지원하지 않음 (DM) EnvironmentHandle에 해당하는 드라이버는 함수를 지원하지 않습니다.

의견

특성 목록은 SQLSetEnvAttr 를 참조하세요. 드라이버별 환경 특성이 없습니다. Attribute가 문자열을 반환하는 특성을 지정하는 경우 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 함수(SQLGetConnectAttr Function)
문 특성의 설정 반환 SQLGetStmtAttr 함수
연결 특성 설정 SQLSetConnectAttr 함수
환경 특성 설정 SQLSetEnvAttr 함수
문 특성 설정 SQLSetStmtAttr 함수

참고 항목

ODBC API 참조
ODBC 헤더 파일