Logo CitForum CITForum на CD Форумы Газета Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

20.03.2010

Google
WWW CITForum.ru

Новости мира IT:

Архив новостей

Пятнадцатая техническая конференция «Корпоративные базы данных-2010»
Москва, 22–23 апреля

О Руссификации 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.

Переменные Окружения

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

О Настройке 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

Настройка UNIX для работы с INFORMIX

Если при запуске нескольких процессов INFORMIX программы начинают слетать с сообщением 1250 "Unable create a pipe", значит в вашей системе слишком мало socketов. А требуется их по 4 штуки на каждую запускаемую программу INFORMIX'а.
Корректирующие действия: создайте недостающие socketы в каталоге /dev/so , задайте им нормальные права доступа, и перегенерите систему, указав в dfile их новое количество.
Внимание! Не уничтожайте старый UNIX, пока не убедитесь, что новый грузится нормально!!!

Назад || Оглавление || Вперед

Последние комментарии:

Я не верю в iPad (70)
20 марта, 02:34

Подписка на новости CITForum.ru

Новые публикации:

10 марта

  • HadoopDB: архитектурный гибрид технологий MapReduce и СУБД для аналитических рабочих нагрузок

  • Классификация OLAP-систем вида xOLAP

  • BGP. Три внешних канала. Балансировка исходящего и входящего трафиков

    Газета:

  • Что мы знаем об iPhone 4G?

    17 февраля

  • MapReduce и параллельные СУБД: друзья или враги?

  • Объектно-ориентированное программирование в ограничениях: новый подход на основе декларативных языков моделирования данных

  • Системологический подход к декомпозиции в объектно-ориентированном анализе и проектировании программного обеспечения

    Газета:

  • Эволюция Wine

    3 февраля

  • Дом на песке

  • Реальное переосмысление "формальных методов"

  • Интервью с Найджелом Пендзом

    Газета:

  • iPad. Первый взгляд на долгожданный планшет от Apple

  • Я не верю в iPad

    20 января

  • SQL/MapReduce: практический подход к поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователями

  • Данные на лету: как технология потокового SQL помогает преодолеть кризис

    Обзоры журнала Computer:

    2 декабря

  • Сергей Кузнецов. Год эпохи перемен в технологии баз данных

    18 ноября

  • Генерация тестовых программ для подсистемы управления памятью микропроцессора

  • Сравнительный анализ современных технологий разработки тестов для моделей аппаратного обеспечения

    11 ноября

  • Генерация оптимизированных для ручного выполнения сценариев тестирования приложений с графическим интерфейсом пользователя

  • Применение технологии UniTESK для функционального тестирования инфаструктурного ПО Грид

    28 октября

  • Remoting с сервером на Unmanaged C++ или Вторая жизнь старых приложений

  • Методы обеспечения переносимости ПО

  • Организация сложных тестовых наборов

    22 октября

    Обзоры журнала Computer:

    14 октября

  • МОГучие способности: новые приемы анализа больших данных

  • Учимся регулярно выражаться

    8 октября

  • Записки исследователя NTFS

  • Создание кросс-платформенных графических интерфейсов на wxPerl

    Все публикации >>>


  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 6608306, ICQ 232284597 Пресс-релизы — pr@citforum.ru
    Послать комментарий
    Информация для авторов

    Редакция раздаёт котят!

    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2009 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...


    AGNY - оптимизация сайта под поисковые системы