Этот сайт посвящается администрированию баз данных OpenEdge Progress.
Не корысти ради, а познания для!

С уважением,
Валерий Башкатов
Сайт разработан при участии компании Progress Technologies, официального дистрибьютора Progress Software Corp. на территории стран СНГ и Латвии.

RSS RSS подписка на обновления сайта

Поиск по сайту

Лучшие материалы

Orphus System
На сайте функционирует система коррекции ошибок. Обнаружив неточность в тексте, выделите её и нажмите Ctrl+Enter



Результаты опроса: Нужны ли книги по Progress OpenEdge на русском языке? (опрос проводился с мая 2009 по ноябрь 2010)

Да, нужны. Потому что будет легче понять материал - 268
Нет, не нужны. Достаточно материалов на английском языке - 10
Не знаю, мне всё равно - 6

А знаете ли вы что..



Русификация баз данных





Для примера будет использована база данных $DLC/empty4

Вариант №1. Конвертация из кодировки iso8859-1 в ibm866

1. Создайте пустой каталог:

$mkdir test

2. Перейдите в каталог test

$cd test

3. По умолчанию, empty базы данных в каталоге DLC имеют кодировку iso8859-1. Поэтому, если в вашем стандартном файле параметров $DLC/startup.pf используется другая кодировка, например, ibm866, то создайте в каталоге test новый файл параметров. Назовем его mypf.pf. Его содержимое должно быть следующее:

-lng "English" 
-cpcase Basic 
-cpcoll Basic 
-cpinternal iso8859-1 
-cpstream iso8859-1

4. Сделайте копию базы данных $DLC/empty4 в каталог test, как показано в следующей команде:

$ procopy $DLC/empty4 ./empty4 -pf ./mypf.pf

5. Выполните конвертацию базы данных empty4 в кодировку UNDEFINED:

$ proutil empty4 -C convchar convert UNDEFINED
OpenEdge Release 10.2A01 as of Fri Mar  6 21:03:26 EST 2009 
 The BI file is being automatically truncated. (1526) 
  Database is encoded using iso8859-1 for character data types. (3939) 
  You must have your database backed up before running convchar. (3940) 
  Have you done this (y/n) ? 
   y 
  Conversion beginning, please await success confirmation... (1100) 
  Database not scanned; no fields selected. (3946) 
    Results of scan to convert database. (3944) 
    Old Encoding:   iso8859-1 
     New Encoding:   UNDEFINED 
     Scan Mode:      CONVERT/ANALYSE 
     Scan Complete:  YES 
     Scan Coverage:  NONE 
     Database State: CONVERTED 
  The following fields contain data requiring translation: (3963) 
        Total of 0 fields. 
  Database is encoded using UNDEFINED for character data types. (3939) 
  Conversion complete, character encoding conversion successful.(3945)

6. Скопируйте из каталога $DLC/prolang/rus файл rus866.df в каталог test. Если каталога rus у вас нет, то необходимо установить пакет 102a_suppromsgs_linux.tar.Z, который доступен на www.progress.com/esd.

7. Выполните конвертацию базы empty4 командой CONVCHAR CONVERT:

$ proutil empty4 -C convchar convert IBM866
OpenEdge Release 10.2A01 as of Fri Mar  6 21:03:26 EST 2009 
  The BI file is being automatically truncated. (1526) 
   Database is encoded using UNDEFINED for character data types. (3939) 
   You must have your database backed up before running convchar. (3940) 
   Have you done this (y/n) ? 
   y 
   Conversion beginning, please await success confirmation... (1100) 
   The database code page is "undefined". (1170) 
   Modifying the database code page name only. (1171) 
     No data conversion will take place. (1196) 
     The current collation table is not compatible with
               the database code page. (2899)  
   Results of scan to convert database. (3944) 
   Old Encoding:   UNDEFINED 
    New Encoding:   IBM866 
    Scan Mode:      CONVERT/ANALYSE 
    Scan Complete:  YES 
    Scan Coverage:  NONE 
    Database State: CONVERTED 
   The following fields contain data requiring translation: (3963) 
         Total of 0 fields. 
   Database is encoded using IBM866 for character data types.(3939) 
   Conversion complete, character encoding conversion successful.(3945)

8. Войдите в базу данных empty4 в однопользовательском режиме, и загрузите файл ibm866.df через Data Dictionary в следующем меню Admin –> Load Data and Definitions -> Data Definitions (.df file). По завершению вам будет выдано предупреждение о необходимости переиндексации базы данных. Выйдите из базы.

9. Выполните переиндексацию базы данных empty4:

$ proutil empty4 -C idxbuild all

10. Для корректной работы с русскими символами необходимо активировать word-indexes. Для этого следует перенести в каталог, в котором установлен Progress (DLC), файл 1251-rus.wbt.

11. Перейдите в каталог $DLC и откомпилируйте его следующей командой:

$ proutil -C wbreak-compiler 1251-rus.wbt 1

Результатом будет файл $DLC/proword.1

12. В каталоге, в  котором находится база, определите для базы empty4 использование word-index по правилу #1, используя команду:

$ proutil empty4 -C word-rules 1
OpenEdge Release 10.2A01 as of Fri Mar  6 21:03:26 EST 2009 
OK, the database word break file no. was changed to 1

13. Выполните полную переиндексацию только word-индексов:

Нужно заранее подготовить файл с описанием word-индексов для утилиты PROUTIL IDXBUILD. Это можно сделать выполнив следующий ABL-код:

output to "word.idx".
  put unformatted "some" skip.
    for each _index where _Wordidx <> ?  no-lock, 
        first _file of _index no-lock.
          put unformatted  _file._file-name   skip 
                           _index._index-name skip.
    end.
  put unformatted "!" skip.
  put unformatted "Y" skip.
  put unformatted "Y".
output close.

Программа создаст файл word.idx в рабочем каталоге текущей сессии, подключенной к базе. Используйте его для переиндексации word-индексов:

$ proutil empty4 -C idxbuild -TB 31 -TM 32 -B 512 < word.idx

Теперь у нас есть русифицированная база данных empty4. И в дальнейшем для создания новых баз данных используйте именно ее вместо $DLC/empty4

Вариант №2. Конвертация из кодировки 1251 в ibm866

1. Скачайте пакет 102a_suppromsgs_linux.tar.Z, который доступен на www.progress.com/esd. И разверните его в каталог $DLC/prolang.

2. В каталоге $DLC/prolang появится каталог rus, который содержит все необходимые уже русифицированные базы данных. Но их стандартная кодировка 1251.

3. Скопируйте все empty<n> базы данных из каталога $DLC/prolang/rus в каталог $DLC, перезаписав существующие. Поскольку в каталоге $DLC запрещено выполнять какие-либо операции с базами данных средствами OpenEdge то вместо команды PROCOPY для копирования используйте команду операционной системы cp.

4. После этого создайте новый каталог (не в $DLC !) и с помощью PROCOPY скопируйте базу $DLC/empty4 в него.

5. Выполните пункты с 6-го по 13-ый из Варианта №1.

Примечание! Вместо итогового имени базы данных empty4 можно использовать любое необходимое вам имя, соответствующее правилам формирования имен баз данных в OpenEdge, например, x-files ;-)

 



 





Главная |  Статьи |  Книги |  Гостевая |  Ссылки |  От автора |  Download ProKb


������ ᠩ� pr Online ProKB Blogger Welcome to Russian Progress Users Group at Facebook Welcome to Russian Progress Users Group at LinkedIn
© 2009 - 2011 Все права на материалы, находящиеся на сайте www.openedge.ru, охраняются в соответствии с законодательством РФ, в том числе, об авторском праве и смежных правах.
При любом использовании материалов сайта ссылка на источник обязательна.