* О РУСИФИКАЦИИ INFORMIX на BESTA'х.
* ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ И INFORMIX.
* О НАСТРОЙКЕ INFORMIX НА ТЕРМИНАЛ.
* ПЕРЕГЕНЕРАЦИЯ UNIX ПОД INFORMIX.
Только в Informix на Беста-88.
(На настоящих машинах русификация делается через NLS)
Данные типа 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.
Для настройки INFORMIX использует переменные окружения. Вы мо-
жете изменить любое из допущений, принимаемых INFORMIX по умол-
чанию, установкой одной или нескольких переменных окружения,
распознаваемых INFORMIX.
Например сделать так, чтобы переменные типа MONEY изображались
не в формате $149.50, а в формате руб 149.50 коп можно командой
DBMONEY='руб . коп' export DBMONEY
DBPATH указывает список директорий где (помимо текущей)
INFORMIX ищет базы данных и связанные с ними файлы.
DBPATH=/udd/iwanow:/udd/petrow export DBPATH
Заставит искать базы данных не только в текущей директории, но
и в директориях Петрова и Иванова
DBPATH=//hostname *OnL*
Заставит искать базы данных OnLine на удаленном компъютере.
Обычно же устанавливают переменные конкретно для вашей рабочей
станции в файле /etc/profile который автоматически выполняет
файл /config/profiles/informix.sh
# примерное содержание файла /config/profiles/informix.sh
INFORMIXDIR=/usr/informix export INFORMIXDIR
DBPRINT=pp export DBPRINT # программа печати - pp
DBEDIT='rk -E' export DBEDIT # пользовательский редактор
# DBDATE=DMY4. export DBDATE # формат даты 24.09.1991
# DBMONEY='. руб' export DBMONEY# совковый стандарт денег
PATH=$PATH:$INFORMIXDIR/bin export PATH # выполняемые модули
SQLEXEC=$INFORMIXDIR/lib/sqlexec export SQLEXEC # сервер - SE
TERMCAP=$INFORMIXDIR/etc/termcap export TERMCAP
case $TERM in # таблица русификации клавиатуры
d460* | d211* | cham | vt* )
KEYBMAP=$INFORMIXDIR/keybmap/dasher # яверты/qwerty
# KEYBMAP=$INFORMIXDIR/keybmap/dasherE # qwerty/яверты
# KEYBMAP=$INFORMIXDIR/keybmap/dasherD # йцукен/qwerty IBM PC
# KEYBMAP=$INFORMIXDIR/keybmap/dasherP # йцукен/qwerty пишмаш
export KEYBMAP
;;
esac
Подробности см. в файле h4rappendC или в Приложении C "Уста-
новка переменных окружения INFORMIX" в REFERENCE MANUAL 4GL.
О НАСТРОЙКЕ INFORMIX НА ТЕРМИНАЛ.
Для настройки на терминалы UNIX использует файл termcap или ба-
зу данных terminfo, в которых собраны описания всех (или почти
всех) терминалов, существующих в природе. Выяснив, какой тип
терминала подключен к машине (а задается это в переменной окру-
жения TERM (например TERM=d460 или TERM=d211)), UNIX находит
описание этого терминала базе описания терниналов и настроив-
шись по хранящейся там информации, может адекватно воспроизво-
дить на нем информацию, подлежащую выводу.
INFORMIX имеет свой собственный termcap файл с описаниями тер-
миналов, в нем поддерживается больше возможностей по сравнению
со стандартным termcap UNIX'а. Чтобы INFORMIX пользовался им
нужно присвоить его маршрутное имя в переменную окружения
TERMCAP=/usr/informix/etc/termcap
Терминалы TATUNG и DASHER-460 можно настраивать в два разных
режима: СТАНДАРТНЫЙ, и ANSI.
СТАНДАРТНЫЙ РЕЖИМ задается стандартным значением переменной
TERM. Для TATUNG TERM=d211, для DASHER-460 TERM=d460. В этом
режиме я и рекомендую вам работать. Включается он по умолчанию.
СТАНДАРТНЫЙ РЕЖИМ имеет следующие недостатки:
1. Некоторые CONTROL-ключи в нем не работают, поскольку их
ASCII коды совпадают с кодами "стрелок" вправо/влево/вверх/вниз
Это было бы легко пережить, если бы этими ключами не были
CONTROL-W - ключ, вызывающий HELP-подсказку в среде INFORMIX и
CONTROL-X - ключ "уничтожить символ".
Следует заметить, что терминалы, работающие в ANSI режиме (по-
сылающие функциональными клавишами длинные ESC-последователь-
ности) плохо переносят русификацию клавиатуры:
2. Недостаток режима ANSI один: функциональные клавиши и стрел-
ки на нем периодически сбоят.
Выглядит это так: десять раз вы нажимаете на "стрелку влево" и
она срабатывает как "стрелка влево" а в одинадцатый (или в
восьмой) раз она срабатывает как целая пачка нажатых клавиш:
ESC, '[', '1', 'D'. Иногда это может оказаться весьма неприят-
но, особенно если за терминалом сидит неопытный пользователь.
Представьте: вы находитесь в экранной форме, нажимаете стрелку
чтобы сдвинуться, а вместо движения у вас срабатывает ESCAPE
("завершить ввод") а потом клавиша 'D', на которой в меню часто
бывает навешано что-нибудь типа Drop или Delete.
Устанавливается ANSI РЕЖИМ так: установите значение переменной
TERM=d211-tansi или TERM=d460-tansi соответственно. Сделать это
можно и в общем профайле /config/profiles/informix.sh, и в лич-
ном профайле .profile, или непосредственно вручную с помощью
команды
TERM=d460-tansi export TERM
или только на время работы INFORMIX, стартовав его так:
TERM=$TERM-tansi r4gl
Решать, какой режим - СТАНДАРТНЫЙ с неработающими ^W и ^X, или
ANSI со сбоящими клавишами - ему менее противен, имеет смысл
каждому пользователю индивидуально, исходя из личных вкусов.
Список допустимых следующие значения переменной TERM для TATUNG ET10:
TERM=d211 Стандартное значение ("Простой")
TERM=d211-tansi Временный ANSI режим (ANSI)
TERM=d211-132 "Широкоэкранный" режим (132 символа в строке)
TERM=vt220 Эмуляция vt220 (vt200 в 7-ми битном режиме)
Допустимы следующие значения TERM для для DASHER D460:
TERM=d460 Стандартное значение
TERM=d460-tansi Временный ANSI режим для DASHER D460
TERM=d460-127 Не реализован
Обеспечивается также работа с другими типами терминалов. См.
начало файла /usr/informix/etc/termcap
Besta: НАСТРОЙКА ядра UNIX для работы с INFORMIX
Если при запуске нескольких процессов INFORMIX програм-
мы начинают слетать с сообщением 1250 "Unable create a pipe",
значит в вашей системе слишком мало socketов. А требуется их по
4 штуки на каждую запускаемую программу INFORMIXа.
Корректирующие действия: создайте недостающие socketы в
каталоге /dev/so , задайте им нормальные права доступа, и пере-
генерите систему, указав в dfile их новое количество.
ВНИМАНИЕ! Не уничтожайте старый unix, пока не убедитесь, что
новый грузится нормально!!!
Переменные окружения. OnLine 7.*
Клиент в момент установки connection посылает серверу переменные окружения:
ARC_DEFAULT
ARC_KEYPAD
COLLCHAR
DBDATE
DBMONEY
DBPATH
DBNLS
DBREMOTECMD
DBSPACETEMP
DELIMIDENT
INFORMIXSHBASE
INFORMIXSTACKSIZE
LC_COLLATE
LC_TYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
PSORT_DBTEMP
PSORT_NPROC
Остальные переменные клиент пересылает серверу
после установки connection, перед первым sql-оператором
(Тогда же они и вычисляются)
Это переменные:
DBLANG
DBTEMP
DBTIME
DBUPSPACE
OPTCOMPIND
PDQPRIORITY
Переменные 7.1
INFORMIXCONRETRY
INFORMIXCONTIME
OPTCOMPIND
PDQPRIORITY
Last-modified: Wed, 09 Sep 1998 08:03:33 GMT