Автоматическая реализация |
Объектные индексы типа auto реализуются используя следующий синтаксис:
index [<имя_OBJ_интерфейса>.]<имя_индекса> auto <реализация>;
<имя_индекса> - имя объектного индекса, описанного в obj-интерфейсе.
Автоматическая реализация допускается только для индексов, содержащих в качестве сегментов свойства (absolute или имеющие доступ по чтению (read) непосредственно ассоциированное с полем таблицы). Причем поля должны использоваться исключительно из корневых таблиц главной логической таблицы интерфейса. Т.е. тут полная аналогия с order логической таблицы. Тот order, который работает не на внешней выгрузке, может использоваться в качестве auto.
Пример.
// -------------------- Описание ------------------- objInterface iTest; property pCode : word read; property pName : string[20] read; index iByName = pName; index iByCode = pCode; end; // -------------- Реализация ----------------------- vipInterface cTest1 implements iTest; interface cTest1; create view as select * from x$files; property pName : string[20] absolute xf$name read; property pCode : word absolute xf$code read; index iByName auto; index iByCode auto; end. // -------------- Использование -------------------- interface test; var pTest : iTest(cTest1) new; create view as select * from pTest order by pName; panel p0 show at (,,,15); table pTest; browse b0 'Пример использования навигационных и реляционных свойств объектов'; fields pTest.pCode 'Код': protect; pTest.pName 'Имя': protect; end; end; end.
Версия : Атлантис 5.0.