Новое в СУБД ЛИНТЕР 6.1

         

Реализация подсистемы


Для хранения информации о кодовых страницах на физическом уровне было создано две служебные таблицы, входящие в системный словарь, которые имеют следующую структуру:

•  $$$CHARSET – таблица, предназначенная для хранения кодовых страниц. Поле IDENT содержит порядковый номер кодовой страницы, WIN_CODE – код в ОС Windows, NAME – имя, PROP – информацию о свойствах кодовой страницы, PAGE – номер страницы, в INFO собрана информация о «весе» символов кодовой страницы, о верхнем/нижнем регистре и о преобразовании в UNICODE. Эта таблица позволяет хранить как информацию об однобайтовых кодовых страницах, так и о многобайтовых . Многобайтовые кодовые страницы хранятся в виде своих составляющих – набора однобайтовых кодовых страниц и при загрузке в СУБД «собираются» в единое целое с целью получения общей таблицы трансляции в /из UNICODE.

•  $$$TRANSL – эта таблица предназначена для хранения информации о трансляции однобайтовых кодовых страниц друг в друга. Поле IDENT содержит порядковый номер трансляции, CSET_FROM – номер кодовой страницы, из которой осуществляется трансляция, CSET_TO – номер кодовой страницы, в которую осуществляется трансляция, NAM – имя трансляции, MAP – таблица трансляции, собственно, и содержащая информацию о соответствии символов. Если нет готовой таблицы трансляции, при необходимости преобразования символов из одной кодовой страницы в другую она генерируется динамически – через таблицу UNICODE-символов.

Следует отметить, что создание таблиц $$$CHARSET и $$$TRANSL осуществляется на этапе создания системного словаря с помощью SQL-запросов. Добавление и удаление записей в эти таблицы также осуществляется с помощью команд SQL: «CREATE (DROP) CHARACTER SET …;» и «CREATE (DROP) TRANSLATION …;»

              



Содержание раздела