Обращение к полям таблиц базы данных |
Для обращения к полям таблиц базы данных существуют следующие возможности:
По имени поля. Используется для обращения к полю текущей таблицы базы данных. Например: A := 2, где А - имя поля.
По имени таблицы базы данных и поля таблицы. Используется для обращения к полю таблицы базы данных текущей логической таблицы. Например: Т.A := 2, где Т - имя таблицы базы данных, А - имя поля.
По имени логической таблицы, таблицы базы данных и поля таблицы. Например: V.Т.A := 2, где V - имя логической таблицы, Т - имя таблицы базы данных, А - имя поля.
По имени логической таблицы и поля логической таблицы. Например:
create view v (new_a) as select a from t; . . . v.new_a := 2;
где v - имя логической таблицы, new_a - имя поля логической таблицы.
По имени поля первой логической таблицы интерфейса или формы. например: new_a:=2.
По ссылке. Например: Persons.cDepartment->Name. См. также "Оператор ссылки. ".
Для использования в методах, требующих числовых идентификаторов сущностей базы данных, язык VIP предоставляет следующие константы:
tn<имя-таблицы> - идентификатор таблицы;
#<имя-таблицы> - идентификатор таблицы;
co<имя-таблицы> - идентификатор таблицы;
tc<имя-ограничения> - идентификатор ограничения (condition);
tb<имя-переключаемого-реляционного-отношения> - идентификатор переключаемого реляционного отношения (bounds);
tbRM<имя-таблицы>1, tbRM<имя-таблицы>2 - идентификаторы переключаемых реляционных отношений (bounds) для автоматизированной пометки записей (см. "Пометка записей. ");
ti<имя-индекса> - идентификатор индекса;
tiNoOrder - отсутствие порядка сортировки для таблицы (используется в функции GetOrder);
fn<имя-поля> - идентификатор поля;
#<имя-поля> - идентификатор поля.
Для ссылки на таблицы и поля таблиц рекомендуется использовать идентификаторы вида fn<имя>, а не #<имя>, т.к.
- идентификаторы вида fn<имя> более универсальны (есть ситуации, в которых fn<имя>, доступно, а #<имя> - не доступно);
- идентификатор вида #<имя> похож на директивы макрокомпилятора, что потенциально может вызвать проблемы.
В обработчике триггера (конструкция handler ... on trigger) для задания индекса можно использовать константы (начиная с Атлантис 5.1.37):
co<имя-таблицы>.ti<имя-индекса>
co<имя-таблицы>.<имя-индекса>
<имя-таблицы>.ti<имя-индекса>
<имя-таблицы>.<имя-индекса>
Константы co<имя-таблицы>.ti<имя-индекса>, co<имя-таблицы>.<имя-индекса>, <имя-таблицы>.ti<имя-индекса> и <имя-таблицы>.<имя-индекса> доступны начиная с Атлантис 5.1.37.