Автоматическая реализация Назад В начало Вперед

Объектные индексы типа 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.