다음을 통해 공유


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 함수

참고 항목

ODBC API 참조
ODBC 헤더 파일