Posted by Васеленко Сергей, Фирма КАРДИНАЛ on September 01, 1999 at 02:41:08:
Хочу изложить идею хранения первичных документов.
Она не совсем нова, но, по-моему, будет изложена ясно.
Сервер по работе с первичными документами поддерживает два вида операций:
- запись документа в архив при построении документа,
- чтение документа из архива по директиве L.
Предложение:
все документы хранятся в едином файле, например, TXA.TXT.
При записи документа в архив, файл открывается в текстовом режиме для добавления, и новый первичный документ просто дописывается в конец.
При этом запоминается смещение в байтах начала и длина первичного документа.
Т.е. для каждого кода операции дополнительно хранятся:
- временной штамп первичного документа,
- смещение начала документа,
- длина первичного документа.
Затем, при чтении файл открывается в режиме прямого доступа, и, начиная от начала документа, считывается определенное количество байт, которое и отсылается напрямую клиенту.
При таком подходе возникает еще один интересный момент - все сформированные документы хранятся, т.е. если организовать определенным образом индекс, то можно будет иметь (и выбирать в дальнейшем) любые версии документов.
В хранении документов есть один ньюанс - нельзя перештамповывать операции.
Иначе - документы одних операций попадают в другие.
Поэтому, предлагаю пользователям использовать для рештампа нашу утилиту FBPTools, которая ставит штампы на те операции, которые их не имеют, или имеют испорченные штампы, оставляя нормальные без изменений.
Этот режим перештамповки является к тому же бесплатным.