12.2. Классы метаданных:

Метаобъекты - это объекты, описывающие структуры хранимых объектов. А также объекты, необходимые для управления работой ядра ОБД.

Любой метаобъект (а также и любой хранимый объект) имеет обязательный аттрибут <ID>, по которому производится чтение метаобъекта или хранимого объекта.<ID> присваивается ядром ОДБ при добавлении метаобъекта в словарь.

Количество и названия метаклассов, хранимых в словаре строго ограничено и определяется ядром ОБД. Никакие другие метаклассы, кроме описанных ниже, хранится в словаре не могут.

DEPOSIT EXTENT ATTR COUNTER INDEX CLASS TCOLUMN TVIEW REPORT PLUGINS USER GROUP

В словаре должен быть хотя бы один объект каждого метакласса, для того чтобы появилась возможность работать с хранимыми объектами.

12.2.1. DEPOSITописание метаобъекта "depository"

Атрибуты:

Пример создания метаобъекта DEPOSIT

	oDict := coDictionary():new("MY001")
	oDict:open()
	....
	depBody := map()
	depBody:name := "depository for Russian global information"
	...
	dep_id := oDict:append(depBody,"DEPOSIT")
	if !empty(oDict:error)
	   ? "Error:",oDict:error
	endif
	

12.2.2. EXTENT описание метаобъекта "пространство"

Атрибуты:

Пример создания метаобъекта EXTENT

		extBody := map()
		extBody:name := "statedep"
		extBody:help := "information from state department of statistic"
		...
		ext_id := oDict:append(extBody,"EXTENT")
		....
	

12.2.3. ATTR описание аттрибута хранимого объекта

Атрибуты:

Возможные значения TYPE

Возможные значения LENTYPE

Пример создания метаобъекта ATTR

	attr:=map()
	attr:name := "code"
	attr:type := "C"
	attr:len  := 7
	attr:lentype := 3
	....
	code_id := oDict:append(attr,"ATTR")
	....
	attr:=map()
	attr:name := "name"
	attr:type := "C"
	attr:len  := 20
	attr:lentype := 2
	....
	name_id := oDict:append(attr,"ATTR")
	

12.2.4. COUNTERописание счетчиков

Атрибуты:

12.2.5. INDEXописание индексируемых выражений

Атрибуты:

Пример создания метаобъекта INDEX

	indBody := map()
	indBody:name := "code"
	indBody:expr := "code"
	ind1_id := oDict:append(indBody,"INDEX")
	....
	indBody := map()
	indBody:name := "name"
	indBody:expr := "name"
	ind2_id := oDict:append(indBody,"INDEX")
	....
	

12.2.6. CLASS описание структуры хранимого объекта

Атрибуты:

Пример создания метаобъекта CLASS

	classBody:=map()
	/* information about coding world currencies */
	classBody:name := "currency"
	/* from state department of statistic */
	classBody:extent_id := ext_id
	/* return via "USD:USA dollar" */
	classBody:expr_essence := "code+':'+name"
	/* two attributes "code" and "name" */
	classBody:attr_list := {code_id,name_id}
	/* two index "code" and "name" */
	classBody:idx_list := {ind1_id,ind2_id}

	currency_id := oDict:append(classBody,"CLASS")
	if !empty(oDict:error)
	   ? "Error:",oDict:error
	endif
	 

12.2.7. TCOLUMN описание колонок таблицы

Атрибуты:

12.2.8. TVIEWописание таблиц

Атрибуты:

12.2.9. REPORTописание отчетов

Атрибуты:

12.2.10. PLUGINSописание подключаемых модулей

Атрибуты:

12.2.11. USERописание пользователя

Атрибуты:

12.2.12. GROUP описание группы пользователя

Атрибуты: