D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Команды системы (TCL) / account-save

account-save

Сохранение одного или нескольких счетов на ленту или в файл

Выполняет сохранение отдельного счета (счетов) на периферийное устройство хранения, которое в данный момент назначено текущему порту.

account-save {account.name} {account.name...} {(options)}
file-save tape label = {tape.label}

"account.name" обозначает имя счета, который надо сохранить. Если нужно сохранить более одного счета, то их имена следует указывать через пробелы. Если ничего не указать, то система попросит ввести имя счета.

"tape.label" - необязательная 48-символьная строка символов, которая записывается в зону метки ленты в начале каждого тома.

Если не задана опция "u", система выполнит полное сохранение счета. Однако, команда "account-save" не сохраняет файлы, содержащие значение "dx" в атрибуте 1 записи описания файла. Кроме того, хотя "account-save" и сохраняет файлы, содержащие значение "dy" в атрибуте 1 записи описания файла, ни одна из записей этого файла не сохраняется.

Для того, чтобы обеспечить возможность выполнения "инкрементного" сохранения счета (т.е. сохранение только изменений), система помечает каждую измененную запись. Обычно, эти метки удаляются во время полного копирования файлов (file-save); однако, при использовании команды "account-save" метки, обозначающие измененные записи, не удаляются.

Если файл имеет код "dx" или "dy" и в нем обновляется запись, то при занесении в файл она не помечается как измененная. Следовательно, даже если удалить "x" или "y" перед запуском "account-save", при "инкрементном" сохранении счета эти записи не будут сохраняться.

Процессор "account-save" блокирует группы во время их сохранения. Пока группа заблокирована, ни один процесс не может получить доступ ни к одной из записей этой группы. Блокировка групп предотвращает выдачу ложных сообщений об ошибках формата группы (GFE), которые имели бы место, если бы какой-либо процесс изменял запись во время ее сохранения. Одновременно может быть заблокировано до четырех групп. Это группы, содержащие указатель словаря "mds", указатель "md", указатель словаря файла, и группа для данных, сохраняемых в данный момент.

Если копирование осуществляется на ленту стримера (SCT), то необходимо явно записать вторую метку конца данных (end-of-data), чтобы обозначить конец ленты. Это можно сделать либо с помощью команды TCL "t-weof", либо с помощью команды FlashBASIC "weof". В противном случае "account-restore" или "sel-restore" не найдут конец ленты.

"account-save" - это программа FlashBASIC, которая вызывает команду "save" с опциями "f", "t", "v" и "i". В командную строку можно добавить любую опцию команды "save".

Примеры:

account-save
file-save tape label = Thursday
account name = dm
1   35  > dm
1   36  > dm > newac
1   37  > dm > newac > newac
...

В процессе выполнения выдается информация о сохраняемых файлах в следующем формате:

Том#  Файл#  > имя счета  > имя словаря  > имя файла данных

В случае многотомных операций, если конец ленты обнаруживается до завершения сохранения, будет выведен следующий запрос:

Load volume #2 and type 'C'
 (Загрузите том #2 и введите 'C')
label  08:00:00  16 Jan 1997  DATA ...          #_

После установки очередного тома ввод символа "c" продолжит процесс, а ввод символа "q" прекратит его и вернет управление в TCL. Система не проверяет, действительно ли был установлен другой том.