О Руссификации INFORMIX.
О Руссификации INFORMIX.
Данные типа char в INFORMIX имеют длину 8 бит на символ и поэтому могут хранить как английские, так и русские буквы.
Встроенной сортировки по русскому алфавиту INFORMIX не реализовал. Для русской сортировки пользуйтесь предварительной перекодировкой. (См. например подпрограммку koder в демонстрационной базе ZAWOD).
Во время ввода пользователь должен переключаться с русского на английский клавишей CONTROL-O, а с английского на русский клавишей CONTROL-N.
Должна быть установлена переменная окружения KEYBMAP="маршрутное имя файла с перекодировочной таблицей"
По умолчанию применяется KEYBMAP=/usr/informix/keybmap/dasher, которая устанавливает клавиатуру "ЯВЕРТЫ" под стандарт терминалов БЕСТЫ, и начальный алфавит - русский. KEYBMAP=/usr/informix/keybmap/dasherE export KEYBMAP
Такой командой устанавливают клавиатуру "ЯВЕРТЫ", и начальный алфавит - английский KEYBMAP=/usr/informix/keybmap/dasherD export KEYBMAP
Клавиатура "ЙЦУКЕН" под стандарт персонального компьютера. KEYBMAP=/usr/informix/keybmap/dasherP export KEYBMAP
Клавиатура "ЙЦУКЕН" под стандарт русской пишущей машинки.
В файле /usr/informix/keybmap/dasher лежит таблица перевода введенных с клавиатуры латинских символов в соответствующие им русские. Перекодировочная таблица соответствует "QWERTY"-английской клавиатуре. (Т.е. 'a' переводится в 'а', 'c' переводится в 'ц' и т.д.). Создается файл /usr/informix/keybmap/dasher программой, лежащей в /usr/informix/keybmap/crmap_dasher.c
Чтобы установить другое расположение русских букв на клавиатуре переделайте эту программу. Для этого переставьте в нужном вам порядке содержимое массива russmap.
В программе /usr/informix/keybmap/crmap_dasher.c статическая переменная init определяет, в каком алфавите начинается работа INFORMIX. Если init=1, то сначала устанавливается русский алфавит, если init=0, то сначала устанавливается латинский алфавит.
Переделанную программу, естественно, нужно не забыть откомпилировать и запустить на выполнение.
Интересным способом борьбы с русификацией INFORMIX, выполненной при портировании оной является полный от нее отказ и использование русского драйвера клавиатуры для UNIX.