powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перевод базы на юникод
7 сообщений из 7, страница 1 из 1
Перевод базы на юникод
    #38404255
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток.
Стоит задача перевести базу FireBird 2.5 на юникод (очень много хранимок). (клиент Delphi XE2 + IBDAC, IBExpress).
Посоветуйте что почитать, поделитесь ссылками, дабы сделать сие преобразование менее болезненным.
Возможно кто то из присутствующих уже переводил базу на юникод. Какие подводные камни могут встретиться.
Приветствуются любые ссылки (Английские, Немецкие и Русские).

Спасибо.
...
Рейтинг: 0 / 0
Перевод базы на юникод
    #38404259
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ibase.ru FAQ по работе с Unicode ты уже прочёл?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Перевод базы на юникод
    #38404260
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

faq читай
http://www.ibase.ru/unicode_faq.htm
там ответы на все твои вопросы.
...
Рейтинг: 0 / 0
Перевод базы на юникод
    #38404326
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvfaq читай
http://www.ibase.ru/unicode_faq.htm
там ответы на все твои вопросы.
Вот уж послал, дак послал. :)

http://www.ibase.ru/unicode_faq.html

Mikhail Tchervonenko, с IBX самое важное тут:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function TIBXSQLVAR.GetCharsetSize: Integer;
begin
  case SQLVar.SQLSubtype and $FF of // здесь and $FF убирает id collate, возвращаемый Firebird
    0, 1, 2, 10, 11, 12, 13, 14, 19, 21, 22, 39,
    45, 46, 47, 50, 51, 52, 53, 54, 55, 58 :  Result := 1;
    5, 6, 8, 44, 56, 57, 64 : Result := 2;
    3 : Result := 3;
    4, 59 : Result := 4; // здесь правильно обрабатывается id UTF8 в Firebird
 else
   Result := 0;
 end;
end;


И затем, добавляя строковые поля в дизайнтайме обращай внимание на их Size, который увеличивается в 4 раза. Как-то еще не нашел, как это обойти. По идее перекомпилять-бы.
...
Рейтинг: 0 / 0
Перевод базы на юникод
    #38404581
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в FAQ все обсуждения вокруг UTF8 а в XE2 string это UTF16.
Как быть с этим?
...
Рейтинг: 0 / 0
Перевод базы на юникод
    #38404592
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoКак быть с этим?
Ты этого не заметишь со стороны своего ПО. (если исправишь ibsql.pas)
...
Рейтинг: 0 / 0
Перевод базы на юникод
    #38404608
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoв FAQ все обсуждения вокруг UTF8 а в XE2 string это UTF16.
Как быть с этим?
не надо об этом думать. Ты же не думаешь, как из Дельфи 7 и 2007 при коннекте win1251 в базу будет записываться юникод. Так и тут не надо думать.
В дельфях двухбайтовый UTF-16, коннект UTF8, в базе UTF8, и все автоматом преобразуется туда и обратно.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Перевод базы на юникод
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]