AT SETTING

Материал из GedeminWiki
Перейти к: навигация, поиск
CREATE TABLE at_setting (
  id              dintkey NOT NULL,  /* идентификатор */
  name            dname NOT NULL     /* наименование настройки */
                  COLLATE PXW_CYRL,
  DATA            DBLOB4096,         /* данные объекта, сохраненные в поток */
  storagedata     DBLOB4096,         /* данные хранилища, сохраненные в поток */
  disabled        dboolean DEFAULT 0,/* активная / неактивная настройка */
  modifydate      dtimestamp,        /* дата сохранения настройки в базу */
  settingsruid    dblobtext80_1251,  /* хранит руиды настроек, от которых зависит данная натсройка*/
  version         dinteger,          /* версия настройки, возрастает при каждом сохранении настройки в базу */ 
  minexeversion   dtext20,           /* min версия Exe-файла для работы настройки */
  mindbversion    dtext20,           /* min версия БД для работы настройки */
  ending          dboolean,          /* конечная/промежуточная настройка */
  description     dtext255           /* описание настройки */
);

Поле settingsruid хранит разделенный запятыми список РУИДов настроек от которых зависит данная настройка. Просмотреть зависимость настроек одна от другой в древовидном виде можно с помощью запроса:

WITH RECURSIVE
  sett_tree AS
  (
    SELECT
      s.id,
      s.id AS orig_id,
      CAST(NULL AS INTEGER) AS parent,
      s.name,
      s.settingsruid,
      0 AS lvl
    FROM
      at_setting s
    WHERE
      NOT EXISTS (SELECT s2.* FROM at_setting s2
        WHERE POSITION((SELECT xid || '_' || dbid FROM gd_ruid
          WHERE id = s.id) IN s2.SETTINGSRUID) > 0)
 
    UNION ALL
 
    SELECT
      s.id + ROUND(RAND() * 100000000),
      S.ID AS orig_id,
      h.id,
      s.name,
      s.settingsruid,
      (H.LVL + 1) AS lvl
    FROM
      at_setting s JOIN sett_tree h
        ON POSITION((SELECT xid || '_' || dbid FROM gd_ruid
          WHERE id = s.id) IN h.SETTINGSRUID) > 0
    WHERE
      h.lvl < 8
  )
 
SELECT
  *
FROM
  sett_tree
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты