Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Вы можете перекомпилировать приложение в качестве приложения Юникода одним из двух способов:
Включите в приложение #define Юникод, содержащийся в файле заголовка Sqlucode.h.
Скомпилируйте приложение с параметром Юникода компилятора. (Этот параметр будет отличаться для разных компиляторов.)
Чтобы преобразовать приложение 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.