Техника программирования



Posted by Анатолий Таланин, г.Новосибирск on June 13, 1999 at 07:15:57:

In Reply to: Как уже сейчас можно динамически формулировать оператор поиска posted by Аркадий Водяник on June 11, 1999 at 11:32:06:

: ... Но есть элегантный способ этого избежать и ДИНАМИЧЕСКИ сформулировать требуемый
: оператор поиска. И не только оператор, а и целую программу. Для этого будем использовать
: поочередную работу двух форм: формы-формулировщика и формы-искателя. Форма-формулировщик
: будет спрашивать пользователя об особенностях запроса и затем генерировать текст
: формы-искателя операторами >FILE и >>FILE

Хочу поделиться практикой, которая схожа с решенем, продемонстрированным Аркадий в поставленной задаче.

В ПП нередко сообщается о том, что файл extrd.dat разрастается за счёт накапливаемых реквизитов, порождая проблемы сохранности, синхронизации, восстановления после аварии, и т.п. Если этот файл использовать для случаев, исключающих хранение справочных данных, тогда часть описываемых в ПП проблем будет снята.

Справочные данные можно хранить в специализированных rpt-файлах. В этих файлах информация хранится и пополняется в диалоговой форме при вводе данных текстового вида [set SCHET, 'Индекс', 'Параметр'] с помощью операторов >file и >>file. Первая операция в ЖО состоит из псевдопроводок с ф/к этих rpt-файлов. Поэтому формирование экстрапараметров, заведённым таким образом обеспечено при загрузке сервера.

Остаётся проблема эксплуатации справочных данных, которые заводятся во время работы программы. Ведь в это время обновляемый пополняемыми данными rpt-файл недоступен системе без перезагрузки.

Решение состоит в том, что при вводе новой информации осуществляется синхронное сохранение её как в rpt-файле в вышеприведённом виде, так и в файле extrd.dat. Программа находит требуемые данные из числа экстрапараметров, или из файла extrd.dat. Вопрос приоритета использования данных, взятых из разных источников, имеет множественные известные технические решения.

Мы накапливаем в файле extrd.dat только ту информацию, которая является временной, либо привязана к операциям и обновляется при каждом запуске сервера. Поэтому справочные данные, сохранённые в специальных именных rpt-файлах здесь не сохраняются на срок, более одного сеанса работы сервера. Попутно решена проблема чистоты файла extrd.dat от "мусора" всевозможного происхождения.



Пpишедшие ответы: