Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
ТВП инвертирования и Связь между записями
Пользователь: Alio (IP-адрес скрыт)
Дата: 24, April, 2008 11:00

Хочу выделить в отдельную тему проблему, которая возникла в

[irbis.gpntb.ru]

Речь идет об использовании в ТВП инвертирования (<dbn>.fst) конструкций языка форматирования, связанных с обращением к другим записям (той же самой или другой БД) - REF..., &uf('D..., &uf('7..., &uf('J... и т.п.

В ОБЩЕМ СЛУЧАЕ использование таких конструкций в ТВП инвертирования НЕ ДОПУСТИМО! - т.е. в ТВП инвертирования можно использовать ТОЛЬКО те конструкции языка форматирования, которые оперируют данными ТЕКУЩЕЙ записи!
Использование в ТВП инвертирования конструкций, обращающихся к другим записям, будет давать положительный результат ТОЛЬКО в двух случаях:
- при создании словаря заново;
- если связанные данные являются СТАТИЧЕСКИМИ (неизменяющимися) по отношению к текущей записи.

Как же быть, если необходимо в словарях (ТВП инвертирования) отразить связь между изменяющимися записями (базами данных)?

Можно рекомендовать следующую общую схему решения этой проблемы.
Если запись (или точнее - записи) типа А связана с записью (записями) типа В (не имеет значения - в той же или другой БД) и эта связь должна динамически отражаться в словарях, необходимо сделать следующее:
1. В записи типа А создать (явно или скрыто) специальное поле NN, в котором будет отражаться данная связь.
2. Через механизм автоввода (AUTOIN.GBL, команда CORREC) отражать в поле NN изменения записи типа В.
3. В ТВП инвертирования создать соответствующую инверсию поля NN.


Вся эта информация, разумеется, адресована только тем, кто ведет самостоятельные разработки в ИРБИС.

Re: ТВП инвертирования и Связь между записями
Пользователь: artgonch (IP-адрес скрыт)
Дата: 25, April, 2008 12:58

А если запись, содержащая поле NN будет заблокирована, то ведь изменения в записях типа B в ней не отразятся

Re: ТВП инвертирования и Связь между записями
Пользователь: Alio (IP-адрес скрыт)
Дата: 25, April, 2008 13:30

artgonch написал(а):
-------------------------------------------------------
> А если запись, содержащая поле NN будет
> заблокирована, то ведь изменения в записях типа B
> в ней не отразятся

Разумеется. А почему она должна быть заблокированной?

Re: ТВП инвертирования и Связь между записями
Пользователь: artgonch (IP-адрес скрыт)
Дата: 25, April, 2008 13:42

Ну... разные случаи бывают



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.