유니코드 드라이버Unicode Drivers

드라이버가 유니코드 드라이버 인지 아니면 ANSI 드라이버가 데이터 원본의 특성에 따라 달라 지는 지를 나타냅니다.Whether a driver should be a Unicode driver or an ANSI driver depends entirely on the nature of the data source. 데이터 원본에서 유니코드 데이터를 지 원하는 경우 드라이버는 유니코드 드라이버 여야 합니다.If the data source supports Unicode data, the driver should be a Unicode driver. 데이터 원본에서 ANSI 데이터만 지 원하는 경우 드라이버는 ANSI 드라이버를 유지 해야 합니다.If the data source only supports ANSI data, the driver should remain an ANSI driver.

유니코드 드라이버는 드라이버 관리자가 유니코드 드라이버로 인식 하도록 Sqlconnectw 를 내보내야 합니다.A Unicode driver must export SQLConnectW to be recognized as a Unicode driver by the Driver Manager.

유니코드 드라이버는 유니코드 함수 ( W접두사 포함)를 수락 하 고 유니코드 데이터를 저장 해야 합니다.A Unicode driver must accept Unicode functions (with a suffix of W) and store Unicode data. ANSI 함수를 사용할 수도 있지만에는 필요 하지 않습니다.It can also accept ANSI functions, but is not required to. (드라이버 관리자는 접미사를 사용 하 여 ANSI 함수 호출을 드라이버에 전달 하지 않지만 , 접미사를 제외 하 고 ansi 함수 호출로 변환한 다음, 드라이버에 전달 합니다.)(The Driver Manager does not pass an ANSI function call with the A suffix to the driver, but converts it to an ANSI function call without the suffix and then passes it to the driver.)

유니코드 드라이버는 응용 프로그램의 바인딩에 따라 유니코드 또는 ANSI로 결과 집합을 반환할 수 있어야 합니다.A Unicode driver must be able to return result sets in either Unicode or ANSI, depending on the application's binding. 응용 프로그램이 SQL_C_CHAR에 바인딩되면 유니코드 드라이버가 SQL_WCHAR 데이터를 SQL_CHAR로 변환 해야 합니다.If an application binds to SQL_C_CHAR, the Unicode driver must convert SQL_WCHAR data to SQL_CHAR. 드라이버 관리자는 ANSI 드라이버에 대 한 SQL_C_WCHAR를 SQL_C_CHAR에 매핑되므로 유니코드 드라이버에 대 한 매핑을 수행 하지 않습니다.The driver manager will map SQL_C_WCHAR to SQL_C_CHAR for ANSI drivers but does no mapping for Unicode drivers.

注意

드라이버 유형을 결정할 때 드라이버 관리자는 SQLSetConnectAttr 를 호출 하 고 연결 시 SQL_ATTR_ANSI_APP 특성을 설정 합니다.When determining the driver type, the Driver Manager will call SQLSetConnectAttr and set the SQL_ATTR_ANSI_APP attribute at connection time. 응용 프로그램에서 ANSI Api를 사용 하는 경우 SQL_ATTR_ANSI_APP SQL_AA_TRUE로 설정 되 고 유니코드를 사용 하는 경우 SQL_AA_FALSE 값으로 설정 됩니다.If the application is using ANSI APIs, SQL_ATTR_ANSI_APP will be set to SQL_AA_TRUE, and if it is using Unicode, it will be set to a value of SQL_AA_FALSE. 이 특성은 드라이버가 응용 프로그램 유형에 따라 다른 동작을 나타낼 수 있도록 하는 데 사용 됩니다.This attribute is used so that the driver can exhibit different behavior based on the application type. 특성은 응용 프로그램에서 직접 설정할 수 없으며 SQLGetConnectAttr에서 지원 되지 않습니다.The attribute cannot be set by the application directly, and it is not supported by SQLGetConnectAttr. 드라이버가 ANSI 및 유니코드 응용 프로그램에 대해 동일한 동작을 발생 하는 경우이 특성에 대 한 SQL_ERROR를 반환 해야 합니다.If a driver exhibits the same behavior for both ANSI and Unicode applications, it should return SQL_ERROR for this attribute. 드라이버가 SQL_SUCCESS을 반환 하는 경우 연결 풀링이 사용 될 때 드라이버 관리자는 ANSI 및 유니코드 연결을 분리 합니다.If the driver returns SQL_SUCCESS, the Driver Manager will separate ANSI and Unicode connections when Connection Pooling is used.