- •Что такое внутренняя таблицы, её тело и строка заголовка.
- •Определение внутренней таблицы со строкой заголовка используя begin of и like.
- •Определение внутренней таблицы без строки заголовка.
- •Когда выделяется память для внутренней таблицы.
- •Порядок добавления строк во внутреннюю таблицу.
- •Добавление данных во внутреннюю таблицу, используя оператор append, формат оператора, пример использования.
- •Особенности дополнения occurs.
- •Операторы, используемые для чтения данных из внутренней таблицы, их форматы.
- •Чтение данных из внутренней таблицы используя оператор loop at, формат оператора.
- •Работа операторов exit, continue и check внутри цикла loop at/endloop.
- •Чтение единственной строки, используя оператор read table, формат оператора.
- •Дополнение index оператора read table, его особенности.
- •Дополнение with key keyexp оператора read table, его особенности.
- •Дополнение binary search оператора read table, его особенности.
- •Дополнение comparing оператора read table, его особенности.
- •Дополнение transporting оператора read table, его особенности.
- •Формы для выражения transporting в операторе read table:
- •Сортировка внутренней таблицы используя оператор sort, его дополнения и особенности.
- •Особенности дополнения as text.
- •Оператор тела таблицы, получение информации о внутренней таблице.
- •Оператор describe table, его описание и особенности работы.
- •Оператор append lines, его описание и особенности работы.
- •Оператор insert lines, его описание и особенности работы.
- •Оператор editor-call, его описание и особенности работы.
- •Оператор insert, его описание и особенности работы.
- •Оператор modify, его описание и особенности работы.
- •Оператор free, его описание и особенности работы.
- •Оператор delete, его описание и особенности работы.
- •Оператор clear, его описание и особенности работы.
- •Оператор refresh, его описание и особенности работы.
- •Оператор append sorted by, его описание и особенности работы.
- •Оператор collect, его описание и особенности работы.
- •Копирование информации из одной внутренней таблицы в другую.
- •Оператор select … into table, дополнения, особенности оператора.
- •Запишите различные формы оператора select для заполнения внутренней таблицы в порядке убывания эффективности оператора.
- •Управление процессом обработки с помощью оператора at first / endat.
- •Управление процессом обработки с помощью оператора at last / endat.
- •Управление процессом обработки с помощью оператора at new / endat.
- •Управление процессом обработки с помощью оператора at end of / endat.
- •Управление процессом обработки с помощью оператора sum.
- •Управление процессом обработки с помощью оператора on change of / endon.
Особенности дополнения occurs.
Дополнение occurs не ограничивает число строк, которые могут быть добавлены во внутреннюю таблицу. Например, если определить occurs 10, то во внутреннюю таблицу можно поместить больше 10 строк. Число строк, которые можно поместить во внутреннюю таблицу, теоретически ограничено только количеством виртуальной памяти, доступной на сервере приложений.
Система использует выражение occurs только как руководство для определения объема памяти, который нужно распределять. При добавлении первой строки во внутреннюю таблицу распределяется объем памяти, равный объему для содержания числа строк, определенных в выражении occurs. Если эта память израсходуется, будет выделено памяти столько, сколько необходимо.
Как альтернатива, можно определить occurs 0. В этом случае система распределяет 8 КБ памяти за один раз.
При определении внутренней таблицы рекомендуется выбирать значение в дополнении occurs, равное среднему максимальному числу строк в таблице.
Операторы, используемые для чтения данных из внутренней таблицы, их форматы.
Для чтения данных из внутренней таблицы обычно используются два оператора:
loop at
read table
Оператор цикла loop at используется для чтения множества строк из внутренней таблицы, оператор read table — для чтения единственной строки.
Синтаксис оператора loop at:
loop at it [into wa] [from m] [to n] [where exp].
---
endloop.
где:
it — имя внутренней таблицы
wa — имя рабочей области
m и n — целочисленные literals, константы или переменные, представляющие относительный номер ряда. Например, 1 означает первую строку в таблице, 2 означает вторую и т.д.
exp — логическое выражение, ограничивающее читаемые строки
--- — любое число строк программы (эти строки выполняются один раз для каждой строки, восстановленной из внутренней таблицы)
Синтаксис оператора read table:
read table it [into wa] [index i | with key keyexp [binary search] ]
[comparing cmpexp]
[transporting texp].
где:
it — имя внутренней таблицы
wa — имя рабочей области
i — целочисленный literal, константа или переменная, представляющая относительный номера ряда. Например, 1 означает первую строку в таблице, 2 означает вторую и так далее
keyexp — выражение, представляющее значение, которое будет найдено
cmpexp — выражение сравнения, представляющее тест, который будет выполнен на найденной строке
texp — выражение, представляющее поля, которые будут транспортироваться в рабочую область после того, как строка будет найдена
(если определены и comparing, и transporting, то comparing должно быть на первом месте)
Чтение данных из внутренней таблицы используя оператор loop at, формат оператора.
Для чтения некоторых или всех строк из внутренней таблицы можно использовать оператор цикла loop at. При чтении содержимого внутренней таблицы loop at размещает ее компоненты (строки) по одной в рабочей области.
Синтаксис оператора loop at:
loop at it [into wa] [from m] [to n] [where exp].
---
endloop.
где:
it — имя внутренней таблицы
wa — имя рабочей области
m и n — целочисленные literals, константы или переменные, представляющие относительный номер ряда. Например, 1 означает первую строку в таблице, 2 означает вторую и т.д.
exp — логическое выражение, ограничивающее читаемые строки
--- — любое число строк программы (эти строки выполняются один раз для каждой строки, восстановленной из внутренней таблицы)
Строки читаются из внутренней таблицы по одной и помещаются последовательно в рабочую область. Строки программы между loop at и endloop выполняются для каждой прочитанной строки. Цикл заканчивается автоматически после прочтения последней строки, и тогда выполняется оператор после endloop.
