Драйверы Юникода
Должен ли драйвер быть драйвером Юникода или драйвером ANSI, полностью зависит от характера источника данных. Если источник данных поддерживает данные Юникода, драйвер должен быть драйвером Юникода. Если источник данных поддерживает только данные ANSI, драйвер должен оставаться драйвером ANSI.
Драйвер Юникода должен экспортировать SQL Подключение W для распознавания в качестве драйвера Юникода диспетчером драйверов.
Драйвер Юникода должен принимать функции Юникода (с суффиксом W) и хранить данные Юникода. Он также может принимать функции ANSI, но не требуется. (Диспетчер драйверов не передает вызов функции ANSI с помощью диспетчера драйверовСуффикс драйвера, но преобразует его в вызов функции ANSI без суффикса, а затем передает его драйверу.)
Драйвер Юникода должен иметь возможность возвращать результирующие наборы в Юникоде или ANSI в зависимости от привязки приложения. Если приложение привязывается к SQL_C_CHAR, драйвер Юникода должен преобразовать SQL_WCHAR данные в SQL_CHAR. Диспетчер драйверов сопоставляет SQL_C_WCHAR с SQL_C_CHAR для драйверов ANSI, но не сопоставляет драйверы Юникода.
Примечание.
При определении типа драйвера диспетчер драйверов вызовет SQLSet Подключение Attr и задает атрибут SQL_ATTR_ANSI_APP во время подключения. Если приложение использует API ANSI, SQL_ATTR_ANSI_APP будет задано значение SQL_AA_TRUE, а если используется Юникод, оно будет иметь значение SQL_AA_FALSE. Этот атрибут используется для того, чтобы драйвер может проявлять различные действия в зависимости от типа приложения. Атрибут не может быть задан приложением напрямую, и он не поддерживается SQLGet Подключение Attr. Если драйвер демонстрирует одинаковое поведение для приложений ANSI и Юникода, он должен возвращать SQL_ERROR для этого атрибута. Если драйвер возвращает SQL_SUCCESS, диспетчер драйверов отделит подключения ANSI и Юникод при использовании пула Подключение ion.