Формат представления объектов БД
Ниже описаны форматы представления некоторых объектов БД в диагностических сообщениях и протоколах утилиты и SQL-запросы для получения логического имени объекта по его системному идентификатору.
Таблица #< nnn >
Идентификация системной или пользовательской таблицы БД. Параметр
< nnn >
–
системный номер таблицы в БД. Для получения реального имени таблицы (например,
для #32
) используется запрос:
select '"'||rtrim($$$USR.$$$S34)||'"."' ||rtrim($$$SYSRL.$$$S13)||'"' from $$$SYSRL, $$$USR where $$$SYSRL.$$$S12=$$$USR.$$$S31 and $$$SYSRL.$$$S11=32; | "SYSTEM"."TYPEINFO"|
Файл < тип > #< номер >
Идентификация файла таблицы БД. Параметр
< тип >
– символьное обозначение типа
файла,
< номер >
– порядковый номер файла этого типа.
Реальное имя файла (в каталоге БД) является конкатенацией трех значений: системного номера таблицы, номера типа файла и порядкового номера файла.
Номера типов файлов:
-
0 – файл индексов;
-
1 – файл данных;
-
2 – файл BLOB-данных.
Для получения реального имени файла (например, имя второго файла данных для
таблицы с системным номером #32
) используется запрос:
select '32.' ||'1' ||'2';
Столбец #< nnn >
Идентификация столбца таблицы БД. Параметр
< nnn >
– порядковый номер столбца в
таблице. Для получения полного имени столбца таблицы (например, столбца #3
для таблицы #101
) используется запрос:
select '"' || rtrim($$$USR.$$$S34) || '"."' || rtrim($$$SYSRL.$$$S13) ||'"."' ||rtrim($$$ATTRI.$$$S23 ) || '"' from $$$SYSRL, $$$USR,$$$ATTRI where $$$SYSRL.$$$S12=$$$USR.$$$S31 and $$$SYSRL.$$$S11=$$$ATTRI.$$$S21 and $$$SYSRL.$$$S11=101 and $$$ATTRI.$$$S22=3; | "SYSTEM"."AUTO"."BODYTYPE"|
Составной индекс #< nnn >
Идентификация составного индекса таблицы БД. Параметр
< nnn >
– порядковый номер
составного индекса в указанной таблице БД. Для получения имени составного
индекса таблицы (например, составного индекса #4
для таблицы #189
) используется
запрос:
select $$$S23 as "Name", CAST(CASE WHEN GetBits (GetLong($$$S24,64),0,9,1)=1 THEN 'Primary' ELSE CASE WHEN GetBits(GetLong($$$S24,64),0,10,1)=1 THEN 'Unique' END END) AS CHAR (20) as "Type", GetByte ($$$S24,5) as "Columns Count" from SYSTEM.$$$SYSRL, SYSTEM.$$$ATTRI, SYSTEM.$$$USR where $$$S11=$$$S21 and $$$S12=$$$S31 and $$$S32=0 and $$$S22=-4 and $$$S11 = 189; |NAME | TYPE | COLUMNS COUNT | |key4 | | 3 |
Бит #< nnn >
Идентификация бита в указанной перед этим странице файла.
ROWID #< nnn >
Идентификация строки указанной перед этим таблицы БД.
Для получения строки таблицы (например, строки с ROWID #100
для таблицы #189
) используется запросы:
получить имя таблицы (см. объект Таблица #< nnn >) select '"'||rtrim($$$USR.$$$S34)||'"."' ||rtrim($$$SYSRL.$$$S13)||'"' from $$$SYSRL, $$$USR where $$$SYSRL.$$$S12=$$$USR.$$$S31 and $$$SYSRL.$$$S11=189; затем строки таблицы: select * from < имя таблицы > where rowid=100;
Страница #< nnn >
Идентификация страницы указанного перед этим файла.
Доступ к указанной странице осуществляется средствами файловой системы ОС.
Запись #< nnn > (смещение < mmm >)
Идентификация смещения в записи указанной перед этим странице файла.
Доступ к указанному смещению в записи страницы осуществляется средствами файловой системы ОС.
Узел #< nnn >
Идентификация узла в B-дереве файла индексов.
Распознается только утилитой testdb.
Ограничение целостности #< nnn >
Идентификация ограничения целостности таблицы БД. Параметр
< nnn >
– порядковый
номер ограничения целостности в указанной таблице БД.
Процедура #< nnn >
Идентификация хранимой процедуры. Параметр
< nnn >
– системный идентификатор
процедуры в БД. Для получения имени процедуры (например, имени процедуры с
системным идентификатором #2
) используется запрос:
select '"'||rtrim($$$USR.$$$S34)||'"."'||rtrim($$$PROC.$$$NAME)||'"' from $$$PROC, $$$USR where $$$PROC.$$$OWNER=$$$USR.$$$S31 and $$$PROC.$$$ID=2 and $$$PROC.$$$NAME< >''; | "SYSTEM"."Сальдо"|
Триггер #< nnn >
Идентификация триггера. Параметр
< nnn >
– системный идентификатор триггера в БД.
Для получения имени триггера (например, имени триггера с системным
идентификатором #5
) используется запрос:
select '"'||rtrim($$$USR.$$$S34)||'"."'||rtrim($$$TRIG.$$$NAME)||'"' from $$$TRIG, $$$USR where $$$TRIG.$$$OWNER=$$$USR.$$$S31 and $$$TRIG.$$$ID=5; | "SYSTEM"."Before insert on TAB1"|
Кодировка #< nnn >
Идентификация кодировки. Параметр
< nnn >
– системный идентификатор кодировки в
БД. Для получения имени кодировки (например, имени кодировки с системным
идентификатором #3
) используется запрос:
select NAME from $$$CHARSET where IDENT=3; | KOI8-R|
Трансляция #< nnn >
Идентификация трансляции. Параметр
< nnn >
– системный идентификатор трансляции в
БД. Для получения имени трансляции (например, имени трансляции с системным
идентификатором #5
) используется запрос:
select NAM from $$$TRANSL where IDENT=5; | fromCP1251toKOI8-R|
Группа
-
Устройство #< nnn >
-
Группа #< nnn >
-
Уровень #< nnn >
-
Станция #< nnn >
идентифицируют объекты БД, используемые в средствах защиты информации от
несанкционированного доступа. Параметр
< nnn >
– системный идентификатор объекта
в БД. Для получения имени объекта (например, имени объекта с системным
идентификатором #5
) используются соответственно следующие запросы:
select $$$NAME from $$$DEVICE where $$$ID=5; select $$$NAME from $$$GROUP where $$$ID=5; select $$$NAME from $$$LEVEL where $$$ID=5; select $$$SNAME from $$$STATION where $$$STATIONID=5;