Переменные
Переменные – это место для хранения данных во время выполнения. Вы можете описать переменные в любом месте вашего кода, но лучшей практикой является их описание в рамках того блока кода, в котором они будут использоваться. Например, если процедура имеет один главный блок, то вы должны описать все переменные в секции Definitions. Если процедура имеет вложенные блоки, и если переменная используется только в рамках вложенного блока, то вы можете описать её внутри этого блока.
Переменная имеет имя и тип данных. В следующей таблице приведён пример некоторых типов данных, которые мы будем использовать в примерах этого пособия. Эти типы данных являются ключевыми словами ABL-оператора для указания типа данных переменной.
Тип данных ABL |
Описание |
character | Содержит строковое значение длинной до 31 Кб. Символьные данные должны быть записаны как текст, заключённый в одинарные или двойные кавычки. |
integer | Может содержать положительные или отрицательные целые значения. |
handle | Дескриптор или указатель на множество доступных различных системных объектов. Некоторые из дескрипторов создаются автоматически, другие вы можете создать самостоятельно с помощью ABL-операторов. На этом уроке вы будете использовать дескрипторы для доступа к ABL-процедурам во время выполнения. |
Рассмотрим синтаксис для описания переменной. Отметим, что приведённые здесь и далее синтаксис достаточно упрощён для вашего первоначального понимания. Узнать о полном синтаксисе того или иного оператора вы может из документации к OpenEdge, книга «ABL Reference Guide».
define variable <variable-name> as <data-type> [no-undo] [initial <initial-value>].
variable-name
Имя переменной, используемое процедурой для сохранения данных во время выполнения.
data-type
Тип данных ABL, который может быть character, integer, handle или любой другой допустимый тип данных в ABL.
initial-value
Инициализирующее значение переменной в момент старта процедуры. Это значение всегда соответствует типу данных переменной. Значение по умолчанию для типа character является “” (пустая строка). Для типа integer – 0. Для типа handle – знак вопроса (?), которые представляет неизвестное значение.
no-undo
Рекомендованное к обязательному использованию ключевое слово для всех переменных, но в зависимости от того, где планируется использовать переменную. Этот параметр означает, что в случае отката транзакции значение переменной не вернётся к исходному значению, которое имела переменная до старта транзакции. Возможность отката значения переменной необходима очень редко, таким образом, рекомендуется использовать no-undo, так как это более эффективно для выполнения процедуры. Используйте no-undo всегда, если обратного не требует логика приложения.
Пример описания переменных для каждого типа данных, используемых на этом уроке:
define variable CustomerNum as integer no-undo initial 1. define variable CustomerName as character no-undo. define variable hProcedure as handle no-undo.