Классика баз данных - статьи

       

Время жизни локальных переменных ограничено


Время жизни локальных переменных ограничено временем выполнения метода или триггера.

У объектных типов могут существовать конструкторы и деструкторы - методы, вызываемые, соответственно, при создании и уничтожении объектов.

Пример. Реализуем метод DoSale типа Sales

ALTER CLASS Sales REALIZE DoSale AS BEGIN IF DateOfAction NOT IS NULL THEN //если отгрузка уже сделана IF DateOfAction = DateOfSale Then Return TRUE; //и сделана тем же числом - OK! ELSE RETURN FALSE; //отгрузка сделана другим числом - ошибка ELSE //отгрузка еще не сделана IF IsPayed THEN BEGIN DateOfAction := Date Of Sale; RETURN TRUE; //продажа уже оплачена - ОК END ELSE RETURN FALSE ;//отгрузка невозможна (нет оплаты) - Ошибка END;

Для объектов определены операции, позволяющие определить тип этих объектов. В связи с тем, что в R*O системе поддерживается наследование объектных типов, данное требование требует некоторых разъяснений. Существуют две операции, позволяющие определить тип объекта. Первая операция o IS t (где o - ссылка на объект, а t - имя типа), возвращает истину, если объект, определяемый ссылкой o, является объектом данного типа. Подразумевается, что, в случае наследования, объект любого типа-наследника является также объектом базового типа. Из этого, в частности, следует, что операция o IS Object (где Object - предопределенный базовый тип) вернет истину для любого объекта. Вторая операция, o OF t, возвращает истину, когда объект, определяемый ссылкой o, был создан как объект класса t (т.е. этот объект был создан операцией new t). Соответственно, o OF Object всегда будет ложью.


Содержание  Назад  Вперед