Перейти до вмісту
ГОСТ 22558-89
/ 116

Назначение

Фраза ACCESS MODE (ДОСТУП) задает порядок, в котором осуществляется доступ к записям в файле.

Общий формат

SEQUENTIAL [RELATIVE KEY IS имя-данного-1]

ACCESS MODE ISH RANDOM ) ncI vv TC I dynamic; relat,ve ke' is имя-данного-1

ПОСЛЕДОВАТЕЛЬНЫЙ [ОТНОСИТЕЛЬНЫЙ

КЛЮЧ имя-данного-1]

і доступ;

ПРОИЗВОЛЬНЫЙ і

' _ 'ОТНОСИТЕЛЬНЫЙ

динамический' ■

КЛЮЧ имя-данного-1

Синтаксические правила

Имя-данного-1 может быть уточнено.

Имя-данного-1 должно ссылаться на данное, описанное как целое без знака, не содержащее в описании шаблона литеры Р(М).

Имя-данного-1 не должно быть определено в статье описа­ния записи, связанной с этим именем-файла.

Фраза ACCESS MODE IS RANDOM (ДОСТУП ПРОИЗ­ВОЛЬНЫЙ) не должна быть указана для имен-файлов, указан­ных в фразах USING (ИСПОЛЬЗУЯ) или GIVING (ПОЛУЧАЯ) операторов SORT (СОРТИРОВАТЬ) или MERGE (СЛИТЬ).

|5) Если на относительный файл ссылаются в операторе START (ПОДВЕСТИ), для этого файла должна быть указана фраза RELATIVE KEY (ОТНОСИТЕЛЬНЫЙ КЛЮЧ) во фра­зе ACCESS MODE (ДОСТУП).

Общие правила

Если фраза ACCESS MODE (ДОСТУП) не задана, пред­полагается последовательный доступ.

Если доступ последовательный, записи становятся доступ­ными в последовательности, диктуемой организацией файла. Эта последовательность есть возрастающая последовательность от­носительных номеров записей, находящихся в файле.

Если доступ произвольный, значение данного, определен­ного как относительный ключ, указывает на запись, к которой дол­жен быть осуществлен доступ.

Если доступ динамический, к записям файла можно об­ращаться методом последовательного и (или) произвольного доступа.

Записи в относительном файле однозначно идентифициру­ются относительными номерами записей. Относительный номер записи указывает порядковую позицию логической записи в фай­ле. Первая логическая запись имеет относительный номер записи 1, следующие логические записи имеют относительные номера 2, 3, 4 и так далее.

Данное, представленное именем-данного-1, используется для передачи относительного номера записи между пользовате­лем и СУМП.

Данное, представляющее относительный ключ, связанный с выполнением оператора ввода-вывода, является данным, на ко­торое ссылается имя-данного-1 во фразе ACCESS MORE (ДОС­ТУП).

Если соответствующий определитель файла является внеш­ним определителем файла, то каждая статья управления файлом в единице исполнения, связанная с этим определителем файла, долж­на указывать один и тот же метод доступа. Кроме того, имя-дан­ного-1 должно ссылаться на внешнее имя-данного, и фраза RELA­TIVE KEY (ОТНОСИТЕЛЬНЫЙ КЛЮЧ) в каждой соответствую­щей статье управления файлом должна в каждом случае ссылать­ся на одно и то же внешнее имя-данного.

Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ)

Назначение

Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТ­НОСИТЕЛЬНАЯ) определяет относительную организацию как логическую структуру файла.

Общий формат

[ORGANIZATION IS] RELATIVE

[ОРГАНИЗАЦИЯ]ОТНОСИТЕЛЬНАЯ

Общие правила

Фраза ORGANIZATION IS RELATIVE (ОРГАНИЗАЦИЯ ОТНОСИТЕЛЬНАЯ) определяет относительную организацию как логическую структуру файла. Организация файла устанавли­вается при создании файла и впоследствии не может быть изме­нена.

Относительная организация является постоянной логиче­ской структурой файла, в которой каждая запись однозначно оп­ределяется целым значением больше пуля, которое указывает порядковую позицию записи в файле.

Параграф I-O-CONTROL (УПРАВЛЕНИЕ ВВОДОМ-ВЫ­ВОДОМ)

Назначение

Параграф I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВО- ДОМ) указывает контрольные точки для перепрогона, а также общие области памяти, которые могут совместно использоваться различными файлами. Фраза RERUN (ПЕРЕПРОГОН) парагра­фа I-O-CONTROL (УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ) рас­сматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.

Общий формат

I-O-CONTROL.

RERUN ON иімя-файла-1 ;

нмя-реализации-1 і

І целое-1 RECORDS OF имя-файла-2 І

EVERY • целое-2 CLOC1CUNITS [

; имя-условия-1 І *

[SAME I [RECORD] і AREA FOR имя-файла-3

{имя-файла-4}...]...].

УПРАВЛЕНИЕ-ВВОДОМ-ВЫВОДОМ.

гг ПЕРЕПРОГОН НА имя-файла-1 ’

і имя-реализации-1 1 І

[ КАЖДЫЕ целое-1 ЗАПИСЕЙ имя-файла-2 І ...

‘ КАЖДОЕ целое-2 ЕДИНИЦ ВРЕМЕНИ |

-L- і имя-условия-1 с

[ОБЩАЯ ОБЛАСТЬ '[ЗАПИСИ] І ДЛЯ имя-файла-3 {имя-файла-4}. . . ] . . . ].

2.6.3. Общие правила

Фраза RERUN (ПЕРЕПРОГОН) для модуля относительно­го ввода-вывода является подмножеством фразы RERUN (ПЕРЕ­ПРОГОН) модуля последовательного ввода-вывода. Описание фразы RERUN (ПЕРЕПРОГОН) см. в ч. 7, п. 2.12.

Фраза SAME (ОБЩАЯ) для модуля относительного ввода- вывода та же, что и для модуля последовательного ввода-вывода. Описание фразы SAME (ОБЩАЯ) см. в ч. 7, п. 2.13.

РАЗДЕЛ ДАННЫХ В МОДУЛЕ ОТНОСИТЕЛЬНОГО ВВОД \ ВЫВОДА

Секция файлов

Информацию о секции файлов см. в ч. 7, п. 3.1.

> ? Статья описания файла

Назначение

Статья описания файла содержит применимую к относитель­ному файлу информацию о физической структуре, идентификации и именах записей.

Общий формат

FD имя-файла-1

[ (

RECORD ’

і 1

I- !

і

BLOCK CONTAINS [ке.юе-і'тО f целое-2 , c^RACTERsl

CONTAINS целое-3 CHARACTERS i

IS VARYING IN SIZE [[FROM целое-4] [TO целое-5] CHARACTERS] }

DEPENDING ON имя-данного-1] I

CONTAINS целое-6 TO целое-7 CHARACTERS I

і [RECORD IS і] STANDARD ] ‘

І I RECORDS ARE ! I OMITTED [

[ \rALUE OF {имя-реализации-1 IS

имя-данного-21 литерал-1

[' ATA і RECORD IS

I DATA ( RECORDS ARE j • • •

ОФ имя-файла-1

| 1 f ОДТПЛГГ'ГІ ' і

і В БЛОКЕ [ОТ целое-1 ДО]! целое-2 > - [

! - - - I - ' j J111 1 I11 N

; целое-3 ЛИТЕР

П \ В ЗАПИСИ]

ЕРЕМЕННОЕ ЧИСЛО [[ОТ целое-4] [ДО целое-5] ЛИТЕР]

[В ЗАВИСИМОСТИ ОТ

имя-да иного-1 ]

! ОТ целое-6 ДО целое-7 ЛИТЕР

МЕТКИ (СТАНДАРТНЫЙ ТУЇ I ОПУЩЕНЫ I

|имя-данного-2 литерал-1


/

I

имя-реализацик-1


(ЗНАЧЕНИЕ I j ЗНАЧ

[ЗАПИСИ ДАННЫХ {имя-данного-3}... ].

С и н т а к с и ч е с к и е правила

Индикатор уровня FD (ОФ) идентифицирует начало статьи описания файла и должен предшествовать имени-файла-1.

Фразы, которые следуют за именем-файла-1, могут зада­ваться в любом порядке.

Одна или несколько статей описания записи должны сле­довать за статьей описания файла.

О б щ и е правила

Статья описания файла связывает имя-файла-1 с определи­телем файла.

Фраза BLOCK CONTAINS (В БЛОКЕ) для модуля отно­сительного ввода-вывода та же, что и для модуля последователь­ного ввода-вывода. Описание фразы BLOCK CONTAINS (В БЛО­КЕ) находится в ч. 7, п. 3.3.

Фраза DATA RECORDS (ЗАПИСИ ДАННЫХ) для моду­ля относительного ввода-вывода такая же, как и для модуля пос­ледовательного ввода-вывода. Описание фразы DATA RECORDS (ЗАПИСИ ДАННЫХ) находится в ч. 7, п. 3.5. Фраза DATA RE­CORDS (ЗАПИСИ ДАННЫХ) рассматривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.

Фраза LABEL RECORD (МЕТКИ) для модуля относитель­ного ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы LABEL RECORD (МЕТКИ) на­ходится в ч. 7, п. 3.6. Фраза LABEL RECORD (МЕТКИ) рассмат­ривается в настоящем стандарте как устаревший элемент и будет удалена в следующей редакции стандарта.

Фраза RECORD (В ЗАПИСИ) для модуля относительно­го ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы RECORD (В ЗАПИСИ) находит­ся в ч. 7, п. 3.8.

Фраза VALUE OF (ЗНАЧЕНИЕ) для модуля относитель­ного ввода-вывода такая же, как и для модуля последовательного ввода-вывода. Описание фразы VALUE OF (ЗНАЧЕНИЕ) нахо­дится в ч. 7, п. 3.9. Фраза VALUE OF (ЗНАЧЕНИЕ) рассматрива­ется в настоящем стандарте как устаревший элемент и будет уда­лена в следующей редакции стандарта.

РАЗДЕЛ ПРОЦЕДУР В МОДУЛЕ ОТНОСИТЕЛЬНОГО ВВОДА-ВЫВОДА

Общее описание

Если оператор USE (ИСПОЛЬЗОВАТЬ) модуля относитель­ного ввода-вывода имеется в исходной Кобол-программе, раздел процедур содержит декларативные процедуры. Ниже приводится общий формат раздела процедур для случая, когда оператор USE (ИСПОЛЬЗОВАТЬ) указан.

PROCEDURE DIVISION.

DECLARATIVES.

{имя-секции SECTION.

оператор USE.

[имя-параграфа.

[предложение]

END DECLARATIVES.

{имя-секции SECTION.

[имя-параграфа.

[предложение]

РАЗДЕЛ ПРОЦЕДУР.

ДЕКЛАРАТИВЫ.

{СЕКЦИЯ имя-секции.

оператор ИСПОЛЬЗОВАТЬ.

[имя-параграфа.

Предложение] ... ]

КОНЕЦ ДЕКЛАРАТИВ.

{СЕКЦИЯ имя-секции.

[имя-параграфа.

[предложение]. . . ] . . . }

Оператор CLOSE (ЗАКРЫТЬ)

Назначение

Оператор CLOSE (ЗАКРЫТЬ) завершает обработку файла, (возможно, с замком .

Общий формат

CLOSE {имя-файла-1 [WITH LOCK] 1}...

ЗАКРЫТЬ {имя-файла-1 [С~ЗАМКОМ] |} ...

Синтаксическое правило

Файлы, перечисленные в операторе CLOSE (ЗАКРЫТЬ), могут иметь различную организацию и доступ.

Общие правила

Оператор CLOSE (ЗАКРЫТЬ) может быть использован только для файла, который был открыт.

Относительные файлы классифицируются как принадлежа­щие к категории непоследовательных однотомных или многотом­ных файлов. Результаты выполнения оператора CLOSE (ЗАК­РЫТЬ) для этой категории файлов приведены ниже.

Формат оператора GLOSS (ЗАКРЫТЬ)

Действия операторов GLOSE (ЗАКРЫТЬ) для непоследовательного однотомного (многотомного) файла

CLOSE (ЗАКРЫТЬ)

А

CLOSE WITH LOCK (ЗАКРЫТЬ С ЗАМКОМ)

А, Б

Определения символов А и Б приведены ниже.

Там, где эти определения зависят от того, является ли файл входным, выходным или входным-выходным, приводятся допол­нительные пояснения; в противном случае эти определения отно­сятся к входным, выходным и входным-выходным файлам.

А — закрыть файл.

Входные и входные-выходные файлы (доступ последователь- ный). Если файл установлен в конце и указаны записи меток для этого файла, метки обрабатываются в соответствии со стандартной процедурой обработки меток, определенной реализацией. Дейст­вия оператора CLOSE (ЗАКРЫТЬ) не определены, когда записи меток специфицированы, но в файле отсутствуют, или когда за­писи меток не специфицированы, но присутствуют. Выполняются операции закрытия, определенные реализацией. Если файл уста­новлен в конце и записи меток для него не специфицированы, мет­ки не обрабатываются, но другие операции закрытия, определен­ные реализацией, выполняются. Если файл установлен не в конце, операции закрытия, определенные реализацией, выполняются, но конечные метки не обрабатываются.

Входные и входные-выходные файлы (доступ произвольный или динамический)^. Выходные файлы (доступ произвольный, динамический | или последовательный). Если записи меток для файла специфицированы, метки обрабатываются в соответствии со стандартной процедурой обработки меток, определенной реали­зацией. Действия оператора CLOSE (ЗАКРЫТЬ) не определены, когда записи меток специфицированы, но в файле отсутствуют, или когда они не специфицированы, но присутствуют. Выполняют­ся операции закрытия, определенные реализацией. Если записи меток для файла не указаны, метки не обрабатываются, но другие операции закрытия, определенные реализацией, выполняются.

Б •— закрыть с замком.

Файл закрыт и не может быть опять открыт во время выпол­нения этой единицы исполнения.

Выполнение оператора CLOSE (ЗАКРЫТЬ) приводит к изменению значения состояния ввода-вывода, относящегося к име- ни-файла-1 (см. п. 1.3.4 настоящей части).

Если не присутствует необязательный входной файл, для файла не производится обработка конца файла, и указатель по­зиции файла не меняется.

После успешного завершения оператора CLOSE (ЗАК­РЫТЬ) область записи, связанная с именем-файла, становится не­доступной. В случае неуспешного выполнения оператора CLOSE (ЗАКРЫТЬ) доступность области записи является неопределен­ной.

После успешного завершения оператора CLOSE (ЗАК­РЫТЬ) файл перестает быть открытым, он больше не связан ни с каким определителем файла.

Если в операторе CLOSE (ЗАКРЫТЬ) указаны несколько имен-файлов, результат выполнения этого оператора CLOSE (ЗА­КРЫТЬ) такой же, как если бы отдельный оператор CLOSE (ЗА­КРЫТЬ) был написан для каждого имени файла в том порядке, как они указаны в этом операторе CLOSE (ЗАКРЫТЬ).

Оператор DELETE (УДАЛИТЬ)

Назначение

Оператор DELETE (УДАЛИТЬ) логически удаляет запись из файла массовой памяти.

Общий формат

DELETE имя-файла-1 RECORD

[INVALID KEY повелительный-оператор-1]

[NOT INVALID KEY повелительный-оператор-2] [END-DELETE]

УДАЛИТЬ ЗАПИСЬ имя-файла

[ПРИ ОШИБКЕ КЛЮЧА повелительный-оператор-1]

[БЕЗ ОШИБКИ КЛЮЧА повелительный-оператор-2]

[ КОНЕЦ-УД АЛИТЬ]

Синтаксические правила

Фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) не долж­на указываться для оператора DELETE (УДАЛИТЬ), который ссылается на файл с последовательным доступом.

Фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) должна быть указана в операторе DELETE (УДАЛИТЬ), который ссыла­ется на файл не с последовательным доступом и для которого не определена процедура USE AFTER STANDARD EXCEPTION (ИС­ПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБ­КИ).

Общие правила

Файл, представленный именем-файла-1, должен быть фай­лом массовой памяти. Он должен быть открыт для ввода-вывода ко времени выполнения этого оператора (п. 4.4 настоящей части).

Для файлов с последовательным доступом последним опе­ратором ввода-вывода, выполняемым для имени-файла-1 перед выполнением оператора DELETE (УДАЛИТЬ), должен быть ус­пешно выполненный оператор READ (ЧИТАТЬ). Система управ­ления массовой памятью логически удаляет из файла запись, ко­торая была извлечена по оператору READ (ЧИТАТЬ).

Для файла с произвольным I или динамическим I досту­пом логически удаляется из файла запись, идентифицируемая зна­чением данного, определенного как относительный ключ, связан­ный с именем-файла-1. Если файл не содержит записи с указан­ным ключом, возникает условие ошибки ключа (см. п. 1.3.5 нас­тоящей части).

После успешного выполнения оператора DELETE (УДА­ЛИТЬ) идентифицированная запись логически удаляется из фай­ла и становится недоступной.

Выполнение оператора DELETE (УДАЛИТЬ) нс влияет на содержимое области записи или на содержимое данного, представленного именем-данного, указанного в варианте DE­PENDING ON (В ЗАВИСИМОСТИ ОТ) фразы RECORD (В IЗАПИСИ), относящейся к имени-файла-1.

Выполнение оператора DELETE (УДАЛИТЬ) не влияет на указатель позиции файла.

При выполнении оператора DELETE (УДАЛИТЬ) обнов­ляется значение состояния ввода-вывода, связанного с именем- файла-1 (см. п. 1.3.4 настоящей части).

Побачили розбіжність з офіційним текстом?

Повідомити про неточність

Напишіть, що саме розходиться з офіційною публікацією. Код документа вкажіть у повідомленні — так ми швидше знайдемо потрібне місце.

Перейти до форми зворотного зв'язку

Дивіться також

Весь розділ →