Текущий архив: 2003.03.27;
Скачать: CL | DM;
ВнизКак добавить в системную таблицу isc4.gbd кирилицу? Найти похожие ветки
← →
Roki (2003-03-05 11:43) [0]Мастера, при попытке записать данные о пользователе(ФИО) кирилицей выскакивает ошибка:
...
cannot transliterate character beetwen character set.
← →
Val (2003-03-05 11:46) [1]какой character set у базы?
← →
y-soft (2003-03-05 11:59) [2]При подсоединении к базе надо явно указывать кодовую страницу
← →
Roki (2003-03-05 12:00) [3]isc4.gdb ?
DEFAULT CHARACTER SET WIN1251;
← →
gek (2003-03-05 12:04) [4]См
y-soft © (05.03.03 11:59)
← →
Roki (2003-03-05 12:28) [5]Я использую IBSecurityService для добавления юзера там нет акой опции как lc_ctype=WIN1251. Что делать?
← →
OlegE (2003-03-05 12:30) [6]2 y-soft © (05.03.03 11:59)
2 gek © (05.03.03 12:04)
Прежде чем советовать нужно или знать или хотя-бы проверить что советуешь -:)))
2 Roki
Я пробовал даже пересоздавать isc4.gdb с нужной кодировкой, пока никаких утешительных результатов. Просьба, если удастьтя найти решение, напиши, пожалуйста на SEP@UkrSibbank.com.
← →
Roki (2003-03-05 12:32) [7]У меня получается добавлять через IBManeger русские именна и фамилии, но вот программно пока никак, пришлось свою таблицу создать и там хранить кирилицу
← →
Val (2003-03-05 14:15) [8]как видно из скриптов выгруженных метаданных, у разных столбцов таблицы users, например - разные character set, указанные непосредственно.
Например у user_name - ascii. меняем чарсет и можем вносить русские наименования.
← →
y-soft (2003-03-08 14:16) [9]>OlegE © (05.03.03 12:30)
В этом форуме как-то не принято давать готовые решения, но после такой сердитой отповеди ничего не остается, как расшифровать свой ответ:)
Установленный по умолчанию ASCII жестко ограничивает ввод диапазоном #32..#127. Переопределять нужно не кодовую страницу и порядок сортировки поля USER_NAME, а непосредственно домен USER_NAME, причем непосредственно править системные таблицы, а не пытаться вызывать ALTER DOMAIN.
Далее, если мы поключимся к ISC4.gdb, указав новый charset, то непосредственная запись в таблицу USERS уже не будет вызывать никаких сложностей. Алгоритм шифровки паролей DESX задокументирован, так что шифровка также не будет представлять трудности.
Введенные таким мудренным образом пользователи будут показываться всеми системными утилитами в списке зарегистрированных, только вот беда - ни создать новую базу от имени такого пользователя, ни залогинится под ним не удасться, т.к. пресловутая кодировка ASCII жестко зашита и в ServerManager, и в gsec в параметрах соединения с ISC4.gdb:(
Ну и последнее - зачем нужны пользователи с кириллическими логинами? Не проще ли указывать кириллические ФИО в полях FIRST_NAME, MIDDLE_NAME, LAST_NAME (кодировка UNICODE_FSS это очень даже позволяет), а в USER_NAME указывать сгенерированный при регистрации уникальный англоязычный логин. Давать пользователю непосредственный доступ к таблицам - весьма неблагоразумно, поэтому обычно пишут промежуточный диалог, в котором пользователь выбирает ФИО на родном языке и пароль, а потом производится поиск по этим данным и при соединении подставляется соответствующий им логин.
Описанное проверено еще во времена 16-разрядных приложений и IB 4.2
Страницы: 1 вся ветка
Текущий архив: 2003.03.27;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.007 c