Доступные версии документации

Формат представления объектов БД

Ниже описаны форматы представления некоторых объектов БД в диагностических сообщениях и протоколах утилиты и 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;
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter