다음을 통해 공유


애플리케이션의 ODBC 버전 선언

애플리케이션이 연결을 할당하기 전에 SQL_ATTR_ODBC_VERSION 환경 특성을 설정해야 합니다. 이 특성은 다음 항목을 사용할 때 애플리케이션이 ODBC 2.x 또는 ODBC 3.x 사양을 따릅니다.

  • SQLSTATEs. ODBC 2.x 및 ODBC 3.x의 많은 SQLSTATE은 다른 값을 가지고 있습니다.

  • 날짜, 시간 및 타임스탬프 형식 식별자. 다음 표는 ODBC 2.x 및 ODBC 3.x의 날짜, 시간 및 타임스탬프 데이터에 대한 형식 식별자를 나타냅니다.

    ODBC 2.x ODBC 3.x
    SQL 형식 식별자
    SQL_DATE SQL_TYPE_DATE
    SQL_TIME SQL_TYPE_TIME
    SQL_TIMESTAMP SQL_TYPE_TIMESTAMP
    C 형식 식별자
    SQL_C_DATE SQL_C_TYPE_DATE
    SQL_C_TIME SQL_C_TYPE_TIME
    SQL_C_TIMESTAMP SQL_C_TYPE_TIMESTAMP
  • SQLTable 인수CatalogName입니다. ODBC 2.x에서는 CatalogName 인수의 와일드카드 문자("%" 및 "_")가 문자 그대로 처리됩니다. ODBC 3.x에서는 와일드카드 문자로 처리됩니다. 따라서 ODBC 2.x 사양을 따르는 애플리케이션은 이러한 문자를 와일드카드 문자로 사용할 수 없으며 리터럴로 사용할 때 이스케이프하지 않습니다. ODBC 3.x 사양을 따르는 애플리케이션은 이러한 문자를 와일드카드 문자로 사용하거나 이스케이프하여 리터럴로 사용할 수 있습니다. 자세한 내용은 카탈로그 함수의 인수를 참조 하세요.

ODBC 3.x 드라이버 관리자 및 ODBC 3.x 드라이버는 애플리케이션이 작성되고 그에 따라 응답하는 ODBC 사양의 버전을 확인합니다. 예를 들어 애플리케이션이 ODBC 2.x 사양을 따르고 SQLPrepare를 호출하기 전에 SQLExecute를 호출하는 경우 ODBC 3.x 드라이버 관리자는 SQLSTATE S1010(함수 시퀀스 오류)을 반환합니다. 애플리케이션이 ODBC 3.x 사양을 따르는 경우 드라이버 관리자는 SQLSTATE HY010(함수 시퀀스 오류)을 반환합니다. 자세한 내용은 이전 버전과의 호환성 및 표준 준수를 참조하세요.

Important

ODBC 3.x 사양을 따르는 애플리케이션은 ODBC 2.x 드라이버로 작업할 때 ODBC 3.x에 새로운 기능을 사용하지 않도록 조건부 코드를 사용해야 합니다. ODBC 2.x 드라이버는 애플리케이션이 ODBC 3.x 사양을 따른다는 선언만 하면 ODBC 3.x 의 새로운 기능을 지원하지 않습니다. 또한 ODBC 3.x 드라이버는 애플리케이션이 ODBC 2.x 사양을 준수한다고 선언하기 때문에 ODBC 3.x에 대한 새로운 기능을 지원하지 않습니다.