Временные таблицы 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 .