다음을 통해 공유


유니코드 드라이버

드라이버가 유니코드 드라이버인지 ANSI 드라이버인지 여부는 전적으로 데이터 원본의 특성에 따라 달라집니다. 데이터 원본이 유니코드 데이터를 지원하는 경우 드라이버는 유니코드 드라이버여야 합니다. 데이터 원본이 ANSI 데이터만 지원하는 경우 드라이버는 ANSI 드라이버를 다시 기본 합니다.

유니코드 드라이버는 드라이버 관리자가 유니코드 드라이버로 인식하려면 SQL커넥트W를 내보내야 합니다.

유니코드 드라이버는 유니코드 함수(W 접미사가 있는)를 수락하고 유니코드 데이터를 저장해야 합니다. ANSI 함수를 수락할 수도 있지만 필수는 아닙니다. (드라이버 관리자는 다음을 사용하여 ANSI 함수 호출을 전달하지 않습니다.드라이버에 대한 접미사이지만 접미사 없이 ANSI 함수 호출로 변환한 다음 드라이버에 전달합니다.)

유니코드 드라이버는 애플리케이션의 바인딩에 따라 유니코드 또는 ANSI에서 결과 집합을 반환할 수 있어야 합니다. 애플리케이션이 SQL_C_CHAR 바인딩하는 경우 유니코드 드라이버는 SQL_WCHAR 데이터를 SQL_CHAR 변환해야 합니다. 드라이버 관리자는 ANSI 드라이버에 대한 SQL_C_CHAR SQL_C_WCHAR 매핑하지만 유니코드 드라이버에 대한 매핑은 수행하지 않습니다.

참고 항목

드라이버 유형을 결정할 때 드라이버 관리자는 SQLSet커넥트Attr을 호출하고 연결 시 SQL_ATTR_ANSI_APP 특성을 설정합니다. 애플리케이션이 ANSI API를 사용하는 경우 SQL_ATTR_ANSI_APP SQL_AA_TRUE 설정되고 유니코드를 사용하는 경우 SQL_AA_FALSE 값으로 설정됩니다. 이 특성은 드라이버가 애플리케이션 유형에 따라 다른 동작을 나타낼 수 있도록 사용됩니다. 애플리케이션에서 직접 특성을 설정할 수 없으며 SQLGet커넥트Attr에서 지원되지 않습니다. 드라이버가 ANSI 및 유니코드 애플리케이션에 대해 동일한 동작을 표시하는 경우 이 특성에 대한 SQL_ERROR 반환해야 합니다. 드라이버가 SQL_SUCCESS 반환하는 경우 드라이버 관리자는 커넥트온 풀링을 사용할 때 ANSI 및 유니코드 연결을 구분합니다.