ГОСТ 22558-89 сторінка 65 з 116
Условие «в конце»
Условие «в конце» может возникнуть в результате выполнения оператора READ (ЧИТАТЬ) (п. 4.5 настоящей части).
У с л о в и е противоречия свойств файла
Условие противоречия свойств файла может возникнуть в результате выполнения операторов OPEN (ОТКРЫТЬ), REWRITE (ОБНОВИТЬ) или WRITE (ПИСАТЬ). При возникновении условия ппотиворечия свойств файла выполнение оператора ввода-вы
вода, который обнаружил это условие, считается неуспешным и файл не изменяется (пп. 4.4, 4.6, 4.9 настоящей части).
При обнаружении условия противоречия свойств файла выполняются следующие действия в указанном ниже порядке:
в состояние ввода-вывода, связанное с именем-файла, помещается значение, указывающее на условие противоречия свойств файла (см. п. 1.3.4 настоящей части);
если для данного имени файла задана процедура USE AFTER EXCEPTION (ИСПОЛЬЗОВАТЬ ПОСЛЕ ПРОЦЕДУРЫ ОШИБКИ), выполняется указанная процедура.
2. РАЗДЕЛ ОБОРУДОВАНИЯ В МОДУЛЕ ИНДЕКСНОГО ВВОДА-ВЫВОДА
Секция ввода-вывода
Информация, относящаяся к секции ввода-вывода, находится в ч. 7, п. 2.1.
Параграф FILE-CONTROL (УПРАВЛ ЕНИЕ-ФАЙЛАМИ)
Информация о параграфе FILE-CONTROL (УПРАВЛЕНИЕ- ФАИ Л АМИ) находится в ч. 7, п. 2.2.
Статья управления файлом
Назначение
Статья управления файлом объявляет существенные физические свойства индексного файла.
Общий формат
SELECT і [OPTIONAL]" имя-файла-1
ASSIGN ТО ( имя-реализации-1 1
(литерал-1 J
[RESERVE целое і ]
гх 1\ -С/х О
[ INDEXED
SEQUENTIAL RANDOM
DYNAMIC
ORGANIZATION
IS]
ACCESS MODE IS
RECORD KEY IS имя-данного-1
[ALTERNATE RECORD KEY IS имя-данного-2 [WITH DUPLICATES]] ...
[FILE STATUS IS имїьданного-3].
ДЛЯ [НЕОБЯЗАТЕЛЬНОГО] имя-файла-1
НАЗНАЧИТЬ І имя-реализации-1 1
[ литер ал-1 J
[РЕЗЕРВИРОВАТЬ целое-1 ОБЛАСТЕЙ]
[ОРГАНИЗАЦИЯ] ИНДЕКСНАЯ
ПОСЛЕДОВАТЕЛЬНЫЙ
П [ДОСТУП
РОИЗВОЛЬНЫЙ
ДИНАМИЧЕСКИЙ I
КЛЮЧ ЗАПИСИ имя-данного-1
[ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ имя-данного-2
[С ДУБЛИРОВАНИЕМ]] ...
, [СОСТОЯНИЕ ФАЙЛА имя-данного-3].
Синтаксические правила
В статье управления файлом фраза SELECT (ДЛЯ) должна указываться первой. Фразы, которые следуют за фразой SELECT (ДЛЯ), могут появляться в любом порядке.
Каждое имя-файла из раздела данных должно быть определено в параграфе FILE-CONTROL (УПРАВЛЕНИЕ-ФАЙЛА- МИ) только один раз. Каждое имя-файла, указанное в фразе SELECT (ДЛЯ), должно иметь статью описания файла в разделе данных той же самой программы.
Литерал-1 должен быть нечисловым литералом и не должен быть стандартной константой. Значение и правила для допустимого содержимого имени-реализации-1 и значения литерала-1 определяются реализацией.
2.3.4.0 6 щ и е правила
Если определитель файла, на который ссылается имя-файла-1, является внешним определителем файла (ч. 10, п. 4.5), все статьи управления файлом в единице исполнения, которые ссылаются на этот определитель файла, должны иметь:
одну и ту же спецификацию фразы OPTIONAL (НЕОБЯЗАТЕЛЬНОГО);
корректную спецификацию для имени-реализации-1 или литерала-1 во фразе ASSIGN (НАЗНАЧИТЬ). Правила корректности имени-реализации-1 и литер ала-1 определяются реализацией;
одно и то же значение целого-1 во фразе RESERVE (РЕЗЕРВИРОВАТЬ)^
одну и ту же организацию;
один и тот же метод доступа.
ту же статью описания данных для имени-данного-1 с тем же относительным размещением в соответствующей записи;
ту же статью описания данных для имени-данного-2, то же относительное размещение в соответствующей записи, то же число дополнительных ключей записи и ту же фразу DUPLICATES (С -ДУБЛИРОВАНИЕМ).
Для данных внешней среды принимается внутренний набор литер.
Для индексного файла предполагается программный алфавит, связанный с внутренним набором литер. Он определяет последовательность значений заданного ключа ссылки, используемого для последовательной обработки файла.
Фраза OPTIONAL (НЕОБЯЗАТЕЛЬНОГО) применима только к файлам, открытым в режиме ввода, ввода-вывода или дополнения. Ее указание требуется для файлов, которые могут отсутствовать во время выполнения объектной программы.
Фраза ASSIGN (НАЗНАЧИТЬ) задает связь между файлом, на который ссылается имя-файла-1, и запоминающей средой, на которую ссылается имя-реализации-1 или литер ал-1.
Фраза RESERVE (РЕЗЕРВИРОВАТЬ) для модуля индексного ввода-вывода та же, что и для модуля последовательного ввода-вывода. Описание фразы RESERVE (РЕЗЕРВИРОВАТЬ) находится в ч. 7, п. 2.9).
Фраза FILE STATUS (СОСТОЯНИЕ ФАЙЛА) для модуля индексного ввода-вывода та же, что и для модуля последовательного ввода-вывода. Описание фразы FILE STATUS (СОСТОЯНИЕ ФАЙЛА) находится в ч. 7, п. 2.5. Содержимое данного, связанного с фразой FILE STATUS .(СОСТОЯНИЕ ФАЙЛА) индексного файла, определяется в п. 1.3.4 настоящей части.
Далее представлены фразы ACCESS MODE (ДОСТУП), [Al7iWJXTE^E^dTDl<ETTA~0lT0nHHTEnbHbIH’K^ra4'3A-| [ПИСИ),I ORGANIZATION IS INDEXED (ОРГАНИЗАЦИЯ ИНДЕКСНАЯ), RECORD KEY (КЛЮЧ ЗАПИСИ),
Фраза ACCESS MODE (ДОСТУП)
Назначение
Фраза ACCESS MODE (ДОСТУП) задает порядок, в котором осуществляется доступ к записям в файле.
Общий формат
S ACCESS MODE IS
EQUENTIAL RANDOM
DYNAMIC
П ДОСТУП
ОСЛЕДОВАТЕЛЬНЫЙ ПРОИЗВОЛЬНЫЙ [динамический
Синтаксические правила
Фраза ACCESS MODE IS RANDOM (ДОСТУП ПРОИЗВОЛЬНЫЙ) не должна употребляться для имен-файлов, указан- •ных во фразах USING (ИСПОЛЬЗУЯ) или GIVING (ПОЛУЧАЯ) операторов SORT (СОРТИРОВАТЬ) и MERGE (СЛИТЬ).
Общие правила
Если фраза ACCESS MODE (ДОСТУП) не задана, предполагается последовательный доступ.
Если доступ последовательный, записи становятся доступными в последовательности, диктуемой организацией файла. Для индексного файла эта последовательность является возрастающей по заданному ключу ссылки соответственно алфавитной упорядоченности файла.
Если доступ произвольный, значение ключа записи для индексного файла указывает требуемую запись.
Если доступ динамический, доступ к записям файла может быть последовательным и (или) произвольным.
Если соответствующий определитель файла является внешним определителем файла, то каждая статья управления файлом в единице исполнения, связанная с этим определителем файла, должна указывать один и тот же метод доступа.
Фраза ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ)
Назначение
Фраза ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ) указывает путь доступа к записям индексного файла по дополнительному ключу записи.
Общий формат
ALTERNATE RECORD KEY IS имя-данного-1 [WITH DUPLICATES]
ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ имя-данного-1 ТСЦУБЛИРОВАНИЕМТ
Синтаксические правила
Имя-данного-1 может уточняться.
Имя-данного-1 должно определяться как буквенноцифровое данное в статье описание записи, соответствующей имени-файла, которой подчинена фраза ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ).
Имя-данного-1 не должно относиться к групповому данному, содержащему переменно повторяющееся данное.
Имя-данного-1 не должно относиться к данному, самая левая позиция литеры которого соответствует самой левой позиции литеры основного ключа записи или других дополнительных ключей записи, связанных с этим файлом.
Если индексный файл содержит записи переменной длины, каждый дополнительный ключ записи должен содержаться в первых х позициях литер записи, где х равно минимальному размеру записи, определенному для файла (см. ч. 7, п. 3.8).
Общие правила
Фраза ALTERNATE RECORD KEY (ДОПОЛНИТЕЛЬНЫЙ КЛЮЧ ЗАПИСИ) указывает дополнительный ключ записи для файла, к которому относится эта фраза.
Описания данных имя-данного-1, а также их относительное размещение внутри записи должны быть такими же, как и при создании файла. Число дополнительных ключей для файла должно быть таким же, как и при создании файла.
Фраза WITH DUPLICATES (С ДУБЛИРОВАНИЕМ) указывает, что значение дополнительного ключа записи может дублироваться в некоторых записях файла. Если фраза WITH DUPLICATES (С ДУБЛИРОВАНИЕМ) не указана, значение дополнительного ключа записи не может дублироваться в записях файла.
Если файл имеет несколько статей описания записи, достаточно описать имя-данного-1 в одной из этих статей описания записи. На идентичные позиции литер, представленные именем- данного-1 в какой-либо статье описания записи, неявно ссылаются ключи для остальных статей описания записи этого файла.
Если соответствующий определитель файла является внешним определителем файла, каждая статья управления файлом в единице исполнения, соответствующая этому определителю файла, должна определять ту же статью описания данных для имени-данного-1, то же относительное размещение внутри соответствующей записи, то же количество дополнительных ключей записи и ту же фразу WITH DUPLICATES (С ДУБЛИРОВАНИЕМ).
26. Фраза ORGANIZATION IS INDEXED (ОРГАНИЗАЦИЯ ИНДЕКСНАЯ)
Назначение
Фраза ORGANIZATION IS INDEXED (ОРГАНИЗАЦИЯ ИНДЕКСНАЯ) указывает, что логической структурой файла является индексная организация.
Общий формат
[ORGANIZATION IS] INDEXED
[ОРГАНИЗАЦИЯ] ИНДЕКСНАЯ
Общие правила
Фраза ORGANIZATION IS INDEXED (ОРГАНИЗАЦИЯ ИНДЕКСНАЯ) указывает, что логической структурой файла является индексная организация. Организация файла устанавливается во время создания файла и не может быть изменена в дальнейшем.
Индексная организация это постоянная логическая структура файла, в которой каждая запись идентифицируется значением одного или более ключей в этой записи.
Фпаза RECORD KEY (КЛЮЧ ЗАПИСИ)
Назначение
Фраза RECORD KEY (КЛЮЧ ЗАПИСИ) указывает путь доступа по основному ключу записи к записям в индексном файле.
О б щ и й формат
RECORD KEY IS имя-данного-1
КЛЮЧ ЗАПИСИ имя-данного-1
Синтаксические правила
Имя-данного-1 может уточняться.
Имя-данного-1 должно ссылаться на данное буквенно-цифровой категории в статье описания записи, связанной с именем- файла, которому подчинена фраза RECORD KEY (КЛЮЧ ЗАПИСИ).
Имя-данного-1 не должно относиться к групповому данному, содержащему переменно повторяющееся данное.
Если индексный файл содержит записи переменной длины, основной ключ записи должен содержаться в первых х позициях литеры записи, где х равняется минимальному размеру записи, указанному для файла (см. ч. 7, п. 3.8).
О б щ и е правила
Фраза RECORD KEY (КЛЮЧ ЗАПИСИ) указывает основной ключ записи для файла, к которому относится фраза. Значения основного ключа записи должны быть уникальными в записях файла.
Описание данного, соотнесенного имени-данного-1, так же как и его относительное местонахождение в записи, должно быть таким же, какое использовалось при создании файла.
Если для файла имеется более одной статьи описания записи, имя-да иного-1 может быть только в одной из этих статей описания записи. Идентичные позиции литер, соотнесенные имени-данного-1, в любой другой статье описания записи неявно считаются ключами для всех остальных статей описания записи этого файла.
Если соответствующий файлу определитель файла является внешним определителем, все статьи описания файла в единице исполнения, связанные с этим определителем файла, должны указывать одну и ту же статью описания данного для имени-данного-1 с одним и тем же относительным местоположением в соответствующей записи.
Параграф I-O-CONTROL (УПРАВЛЕНИЕ ВВОДОМ ВЫВОДОМ)
Назначение
Параграф I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВО- ДОМ) указывает контрольные точки для перепрогона, а также общие области памяти, которые могут совместно использоваться различными файлами. Фраза RERUN (ПЕРЕПРОГОН) параграфа I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ) рассматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.
Общий формат
I-O-CONTROL.
RERUN ON Г имя'Файла’1‘ I EVERY - [ имя-реализации-1 J
( целое-1 RECORDS OF имя-файла-2
' целое-2 CLOCK-UNITS
[ имя-условия-1
[SAME [RECORD] AREA FOR имя-файла-3
{имя-файла-4}...]...]
УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ.
[ [ПЕРЕПРОГОН
НА (имя-файла-1 1
— [ имя-реализации-1 J
КАЖДЫЕ целое-1 ЗАПИСЕЙ имя-файла-2
КАЖДЫЕ целое-2 ЕДИНИЦ-ВРЕМЕНИ
КАЖДОЕ имя-условия-1
[ОБЩАЯ ОБЛАСТЬ [ЗАПИСИ] ДЛЯ имя-файл а-3 {имя-файла-4}...]....]
Общие правила
Фраза RERUN (ПЕРЕПРОГОН) для модуля индексного ввода-вывода является подмножеством фразы RERUN (ПЕРЕПРОГОН) для модуля последовательного ввода-вывода. Поэтому спецификации фразы RERUN (ПЕРЕПРОГОН) см. ч. 7, п. 2.12.
Фраза SAME (ОБЩАЯ ОБЛАСТЬ) для модуля индексного ввода-вывода такая же, как и фраза SAME (ОБЩАЯ ОБЛАСТЬ) для модуля последовательного ввода-вывода. Поэтому соответствующие спецификации см. ч. 7, п. 2.13.
РАЗДЕЛ ДАННЫХ В МОДУЛЕ ИНДЕКСНОГО ВВОДА-ВЫВОДА
Секция файлов
Информацию о секции файлов см. в ч. 7, п. 3.1.
Статья описания файла
Назначение
Статья описания файла содержит применимую к индексному файлу информацию о физической структуре, идентификации и именах записей.
О б щ и й формат
F RECORDS ]
CHARACTERSf
D имя-файла-1
BLOCK CONTAINS [целое-1 ТО] |целое-2
' CONTAINS целое-3 CHARACTERS
I RECORDj
..
S VARYING IN SIZE [ [FROM целое-4] [TO целое-5] CHARACTERS] [DEPENDING ON имя-данного-1]
CONTAINS целое-6 TO целое-7 CHARACTERS
T (RECORD IS 1(STANDARD 1 j LA--L j RECORDS ARE J ( OMITTED j j
VALUE OF {имя-реализации-1 IS { имя-данного-2 k 1 r [литерал-1 rrA.^.. [ RECORD IS ] , ,
[DATA j RECQRDS ARE J {имя-данного-3}... ].
имя-данного-2 литерал-1
имя-реализации-1
I
ЗНАЧЕНИЕ [ЗНАЧ
(СТАНДАРТНЫ
1
I ОПУЩЕНЫ /
МЕТКИ
ПЕРЕМЕННОЕ
ЧИСЛО [[ОТ целое-4]
I [ДО целое-5] ЛИТЕР]
[В ЗАВИСИМОСТИ ОТ имя-данного-1]
ОТ целое-6 ДО целое-7 ЛИТЕР
[В
ЗАПИСИ
целое-3
ЛИТЕР
ЗАПИСЕЙ
ЛИТЕР
[В
БЛОКЕ
[ОТ
целое-1 ДО]
целое-2
ОФ
имя-файла-1
[ЗАПИСИ ДАННЫХ {имя-данного-3} ... ].
Синтаксические правила
Индикатор уровня FD (ОФ) идентифицирует начало статьи описания файла и должен предшествовать имени-файла-1.
Фразы, которые следуют за именем-файла-1, могут задаваться в любом порядке.
Одна или несколько статей описания записи должны следовать за статьей описания файла.
Общие правила
Статья описания файла связывает имя-файла-1 с определителем файла.
Фраза BLOCK CONTAINS (В БЛОКЕ) для модуля индексного ввода-вывода такая же, как и фраза BLOCK CONTAINS (В БЛОКЕ) для модуля последовательного ввода-вывода. Поэтому спецификации фразы BLOCK CONTAINS (В БЛОКЕ) см. ч. 7, п. 3.3.
Побачили розбіжність з офіційним текстом?