다음을 통해 공유


호환성 매트릭스

다음 표에서는 이 섹션의 앞에서 정의한 애플리케이션 및 드라이버 형식의 호환성에 대해 설명합니다.

응용 프로그램 유형

및 버전
32비트 ODBC

2.x 드라이버
ODBC 3.x

드라이버
ODBC 3.8 드라이버 ISO 및 Open Group 규격 드라이버
16비트 애플리케이션, 모든 버전 호환 가능 호환 가능 호환 가능 호환 가능
Pure 2.x 애플리케이션 호환 가능 호환 가능 호환 가능 호환되지 않음[3]
Pure 2.x 다시 컴파일된 애플리케이션 호환 가능 호환 가능[1] 호환 가능[1] 호환되지 않음[3]
순수 2.x 유니코드 애플리케이션 호환 가능 호환 가능[1] 호환 가능[1] 호환되지 않음[3]
Pure Open Group 및 ISO 규격 애플리케이션 호환되지 않음 호환 가능[2] 호환 가능[2] 호환 가능[2]
순수 3.0 애플리케이션 호환되지 않음 호환 가능 호환 가능 호환되지 않음[4]
순수 3.5 애플리케이션 호환되지 않음 호환 가능 호환 가능 호환되지 않음[4]
순수 3.8 이상 애플리케이션 호환되지 않음 [5] 호환되지 않음 [5] 호환 가능 호환되지 않음 [4]
교체된 애플리케이션 호환 가능 호환 가능 호환 가능 호환되지 않음[3]

[1] 애플리케이션은 유니코드 옵션(유니코드 애플리케이션인 경우)과 함께 ODBC 3.5 이상 헤더를 사용하여 다시 컴파일해야 하며 ODBCVER을 0x0250 설정해야 합니다.

[2] 애플리케이션은 ODBC 3.5 이상 헤더를 사용하여 컴파일하고 ODBC 드라이버 관리자와 연결해야 합니다. 헤더 플래그도 ODBC_STD 설정해야 합니다.

[3] ODBC 2.x 에는 책갈피와 같은 표준에 없는 기능이 있으므로 이 구성이 작동하지 않을 수 있습니다.

[4] ODBC 3.x 에는 책갈피와 같은 표준에 없는 기능이 있으므로 이 구성이 작동하지 않을 수 있습니다.

[5] ODBC 3.8에는 ODBC 2.x 또는 3.x 드라이버에 없는 기능(예: ODBC의 드라이버별 C 데이터 형식)이 있으므로 이 구성이 실패할 수 있습니다.

드라이버 관리자 호환성

모든 드라이버 관리자 버전에서 작동해야 하는 ODBC 3.0 애플리케이션은 시작 시 다음을 수행해야 합니다.

  • 환경 핸들을 할당합니다.

  • SQL_ATTR_ODBC_VERSION 환경 특성을 SQL_OV_ODBC3_80 설정합니다. 드라이버 관리자가 SQL_ERROR 반환하면 드라이버 관리자가 3.8보다 오래된 것입니다. SQL_ATTR_ODBC_VERSION 드라이버 관리자에 맞게 SQL_OV_ODBC3 또는 SQL_OV_ODBC2 다시 설정합니다.

  • 연결 핸들을 할당합니다.

  • 연결합니다.

  • SQL_DRIVER_ODBC_VER SQLGetInfo를 호출하여 드라이버 버전을 확인합니다. 드라이버가 ODBC 3.8 드라이버인 경우 드라이버별 C 형식을 사용할 수 있습니다. 그렇지 않으면 드라이버별 C 데이터 형식을 사용하지 마세요.

다시 컴파일된 ODBC 3.x 애플리케이션은 SQL_ATTR_ODBC_VERSION 대한 SQL_OV_ODBC3_80 지정하지 않고 드라이버별 C 형식 이외의 ODBC 3.8 기능을 사용할 수 있습니다. 이는 ODBC 3.x 기능을 사용하여 다시 컴파일된 ODBC 2.x 애플리케이션과 유사합니다.

모든 드라이버 관리자와 호환되는 애플리케이션에서 SQLCancelHandle 사용

WINDOWS 7 이전에 릴리스된 드라이버 관리자에서는 SQLCancelHandle 함수가 지원되지 않으므로 SQLCancelHandle을 직접 호출하는 경우 이전 버전의 Windows에서 애플리케이션을 로드할 수 없습니다. 모든 버전의 드라이버 관리자를 사용하고 새 버전의 Windows에서 SQLCancelHandle을 사용하려면 애플리케이션이 LoadLibraryGetProcAddress를 사용하여 간접적으로 SQLCancelHandle을 호출해야 합니다.

참고 항목

ODBC 3.8의 새로운 기능