* О РУСИФИКАЦИИ 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.




Для настройки на терминалы 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



        Если при запуске нескольких процессов INFORMIX програм-
мы  начинают  слетать с сообщением 1250 "Unable create a pipe",
значит в вашей системе слишком мало socketов. А требуется их по
4 штуки на каждую запускаемую программу INFORMIXа.

        Корректирующие действия: создайте недостающие socketы в
каталоге /dev/so , задайте им нормальные права доступа, и пере-
генерите систему, указав в dfile их новое количество.

ВНИМАНИЕ! Не уничтожайте старый unix, пока  не  убедитесь,  что
новый грузится нормально!!!



Клиент в момент установки 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

Популярность: 1, Last-modified: Wed, 09 Sep 1998 08:03:33 GmT