Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.013 c
8-88083
Serd_hhc
2002-12-18 15:00
2003.03.27
Как сравнить два *.png файла?


14-88226
Дмитрий К.К.
2003-03-12 06:33
2003.03.27
Именинники 12 марта


1-87956
GIMLI
2003-03-16 14:19
2003.03.27
Старые открытые файлы


3-87842
ava
2003-03-09 23:00
2003.03.27
Неправильный цыкл?


8-88085
Vit1251
2002-12-20 23:26
2003.03.27
Нужно узнать метку диска