Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете перекомпилировать приложение в качестве приложения Юникода одним из двух способов:
Включите директиву #define из файла заголовка Sqlucode.h, которая поддерживает Unicode, в приложение.
Скомпилируйте приложение с параметром Юникода компилятора. (Этот параметр будет отличаться для разных компиляторов.)
Чтобы преобразовать приложение ANSI в приложение Юникода, напишите приложение для хранения и передачи данных Юникода. Кроме того, вызовы функций, поддерживающих аргументы SQLPOINTER, необходимо преобразовать для использования количества байтов.
После компиляции приложения в виде приложения Юникода, если приложение вызывает функцию API ODBC (без суффикса), диспетчер драйверов распознает приложение как приложение Юникода и преобразует вызов функции в функцию Юникода (с суффиксом W ), если базовый драйвер поддерживает Юникод. Когда приложение ANSI вызывает функцию без суффикса, диспетчер драйверов преобразует его в ANSI, если базовый драйвер поддерживает ANSI. Если приложение и драйвер поддерживают одинаковую кодировку символов, диспетчер драйверов передает вызовы драйверу (с определенными исключениями для приложений ANSI).
Приложение может вызывать функции Юникода (с суффиксом W ) и функциями ANSI (с суффиксом A или без нее). Вызовы функций Юникода и ANSI могут быть смешанными. Однако если используется библиотека курсоров, вызовы функций Юникода и ANSI не могут быть смешанными. Библиотека курсоров — Юникод или ANSI, а не смесь.
Приложение можно написать таким образом, чтобы его можно было скомпилировать как приложение Юникода или приложение ANSI. В этом случае типы данных символов можно объявить как SQL_C_TCHAR. Это макрос, который вставляет SQL_C_WCHAR, если приложение компилируется как приложение Юникода или вставляет SQL_C_CHAR, если он компилируется как приложение ANSI. Программист приложений должен быть осторожным с функциями, которые принимают SQLPOINTER в качестве аргумента, так как размер аргумента длины изменится (для строковых типов данных) в зависимости от того, является ли приложение ANSI или Юникод.
Функция может вызываться одним из трех способов: как вызов функции только для Юникода (с суффиксом W ), как вызов функции только ANSI (с суффиксом A ) или как вызов функции ODBC без суффикса. Аргументы трех форм функции идентичны. Только эти функции с аргументами SQLCHAR * или аргументами SQLPOINTER, указывающими на строки, требуют формы Юникода и ANSI. Для функций с аргументами, которые могут быть объявлены как символьный тип, например SQLBindCol или SQLGetData (которые не имеют форм Юникода и ANSI), аргумент можно объявить как тип Юникода, тип ANSI или в случае аргумента типа C, макрос SQL_C_TCHAR. Дополнительные сведения см. в разделе "Данные Юникода".
Приложение может быть записано как приложение Юникода, даже если для работы с ним нет драйверов Юникода. Диспетчер драйверов сопоставляет функции и типы данных Юникода с ANSI. Существуют некоторые ограничения на сопоставление Юникода с ANSI, которые можно выполнить. Существование драйвера Юникода для работы приложения Юникода приведет к повышению производительности системы и устранению ограничений, присущих сопоставлениям Юникода с ANSI.