Временные таблицы ABL
Временная таблица содержит записи, и каждая запись имеет набор предопределённых полей. Вы должны определить поля во временной таблице, чтобы они соответствовали типам в базе данных. Как и таблицу базы данных, временные таблицы можно индексировать для повышения производительности. Рекомендуется начинать имена временных таблиц с префикса «tt», за которым следует имя таблицы базы данных.

Примечание. Временные таблицы полезны и в других частях приложения и не ограничиваются тем, что являются частью набора данных для бизнес-сущности.
Когда вы определяете временную таблицу, вы определяете все поля для записи и их типы данных. Синтаксис для определения временной таблицы:
define [{&<visibility-parameter>}] temp-table <tt-name>] [no-undo]
before-table <before-tt-name>
{ field <field-name> as <data-type>}.
|
Элемент синтаксиса |
Описание |
| <visibility-parameter> | Заполнитель, который используется во время компиляции для замены значения видимости в определении. Это позволяет использовать одно и то же определение временной таблицы в классе или процедуре (в которой не используются ключевые слова public, private или protected). |
| <tt-name> | Имя временной таблицы. Имя должно начинаться с буквы и не должно содержать никаких специальных символов, кроме «-» (дефис) или «_» (подчёркивание). Лучше всего начинать имя временной таблицы со строки «tt». |
| <before-tt-name> | Имя той части временной таблицы, которая будет храниться при внесении изменений во временную таблицу на случай отмены изменений. Это необходимо, когда вы обновляете данные для бизнес-сущности. Лучшей практикой является назвать эту таблицу тем же именем, что и временную таблицу, со строкой «Before» в качестве префикса. |
| <field-name> | Имя поля. Имя должно начинаться с буквы и не должно содержать никаких специальных символов, кроме «-» (дефис) или «_» (подчеркивание). |
| <data-type> | Если временная таблица представляет данные в базе данных OpenEdge, тип должен быть допустимым примитивным типом, таким как character, integer или logical. |
Пример временной таблицы ttCustomer , соответствующей таблице Customer в базе данных Sports2000. Обратите внимание на то, что она содержит все поля, определенные в таблице базы данных, с теми же типами.
Обратите внимание, что мы указали ClassAccess в качестве имени параметра видимости.
define {&ClassAccess} temp-table ttCustomer no-undo before-table ttCustomerBefore
field Custnum as integer
field Country as character
field name as character
field Address as character
field Address2 as character
field City as character
field State as character
field PostalCode as character
field Contact as character
field Phone as character
field SalesRep as character
field CreditLimit as decimal
field Balance as decimal
field Terms as character
field Discount as integer
field Comments as character
field Fax as character
field EmailAddress as character
.
