Объектный интерфейс IModify Назад В начало Вперед

Для унификации способов модификации vip-объектов используется следующий obj-интерфейс:

objInterface IModify;
  function DoInsert : word;
  function DoUpdate : word;
  function DoFlush : word;
  function DoDelete : word;
end;

При компиляции прототипа obj-интерфейса происходит создание константы pnAnyProperty идентифицирующей любое свойство. Это значение можно использовать в функции IsPropertyModified.

Каждое свойство имеет признак измененности. Этот признак выставляется в true, если данному свойству было присвоено значение.

Если прикладной программист желает, чтобы его vip-объект можно было сохранять /изменять /удалять из БД, то он должен:

Пример:

vipInterface twKatPersons implements IKatPersons, IModify;

//************************************************************

interface twKatPersons;

create view

as select
  KatPersons.*

from
  KatPersons
;

//------------------------------------------------------------

. . . // реализация методов и свойств IKatPersons

//------------------------------------------------------------

function IModify.doInsert : word;
{
  Result := insert current KatPersons;
}

//------------------------------------------------------------

function IModify.doUpdate : word;
{
  Result := update current KatPersons;
}

//------------------------------------------------------------

function IModify.doDelete : word;
{
  Result := delete current KatPersons;
}

//------------------------------------------------------------

implementation IModify.doFlush abstract;

index IKatPersons.KatPersons0 auto;

end.

Правила реализации функций:

Так же имеются зарегистрированные сервисные функции:

  function IsPropertyModified (propertyNumber : longInt ) : boolean;
  function PropertyIsModified (propertyNumber : longInt; flag : boolean ) : word;
  function PropertiesAreModified (flag : boolean) : word;