다음을 통해 공유


동작 변경

동작 변경은 인터페이스의 구문이 동일한 기본 변경되었지만 의미 체계가 변경된 변경 내용입니다. 이러한 변경의 경우 ODBC 2에서 사용되는 기능입니다.x 는 ODBC 3의 동일한 기능과 다르게 동작합니다.x.

애플리케이션이 ODBC 2를 나타내는지 여부입니다.x 동작 또는 ODBC 3.x 동작은 SQL_ATTR_ODBC_VERSION 환경 특성에 의해 결정됩니다. 이 32비트 값은 ODBC 2를 나타내도록 SQL_OV_ODBC2 설정됩니다.x 동작 및 ODBC 3을 나타내는 SQL_OV_ODBC3.x 동작입니다.

SQL_ATTR_ODBC_VERSION 환경 특성은 SQLSetEnvAttr 호출에 의해 설정됩니다. 애플리케이션에서 SQLAllocHandle을 호출하여 환경 핸들을 할당한 후에는 SQLSetEnvAttr를 즉시 호출하여 표시되는 동작을 설정해야 합니다. (결과적으로 할당되었지만 버전이 없는 상태에서 환경 핸들을 설명하는 새 환경 상태가 있습니다.) 자세한 내용은 부록 B: ODBC 상태 전환 테이블을 참조 하세요.

애플리케이션은 SQL_ATTR_ODBC_VERSION 환경 특성과 함께 표시되는 동작을 명시하지만 특성은 ODBC 2와의 애플리케이션 연결에 영향을 주지 않습니다.x 또는 ODBC 3.x 드라이버입니다. ODBC 3.x 애플리케이션은 ODBC 2 중 하나에 연결할 수 있습니다.x 또는 3.x 드라이버, 환경 특성의 설정에 관계 없이.

ODBC 3.x 애플리케이션은 SQLAllocEnv를 호출해서는 안 됩니다. 따라서 드라이버 관리자가 SQLAllocEnv에 대한 호출을 받으면 애플리케이션을 ODBC 2로 인식합니다.x 애플리케이션.

SQL_ATTR_ODBC_VERSION 특성은 ODBC 3의 세 가지 측면에 영향을 줍니다.x 드라이버의 동작:

  • SQLSTATE

  • 날짜, 시간 및 타임스탬프에 대한 데이터 형식

  • SQLTablesCatalogName 인수는 ODBC 3의 검색 패턴을 허용합니다.x이지만 ODBC 2에는 없습니다.X

SQL_ATTR_ODBC_VERSION 환경 특성의 설정은 SQLSetParam 또는 SQLBindParam에 영향을 주지 않습니다. SQLColAttribute 도 이 비트의 영향을 받지 않습니다. SQLColAttribute는 ODBC 버전(날짜 형식, 정밀도, 소수 자릿수 및 길이)의 영향을 받는 특성을 반환하지만, 의도한 동작은 FieldIdentifier 인수의 값에 따라 결정됩니다. FieldIdentifier가 SQL_DESC_TYPE 같으면 SQLColAttribute는 ODBC 3을 반환합니다.날짜, 시간 및 타임스탬프에 대한 x 코드입니다. FieldIdentifier가 SQL_COLUMN_TYPE 같으면 SQLColAttribute는 ODBC 2를 반환합니다.날짜, 시간 및 타임스탬프에 대한 x 코드입니다.

이 섹션에서는 다음 항목을 다룹니다.