Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы_часть1.doc
Скачиваний:
2
Добавлен:
22.04.2019
Размер:
156.67 Кб
Скачать

1.15 Работа с объектами. Создание новых объектов. Открытие объектов.

Хранимый класс (наследуемый от системного класса %Persistent) Caché предоставляет набор методов для работы с объектами. Эти методы включают: метод %New() – для создания нового объекта класса в памяти, метод %OpenId(OID) – для подкачки существующего объекта в память, метод %Delete(OID) – удаление объекта из БД, метод %Save() – сохранение объекта в БД, %Close() – удаление проекта из памяти.

Создание новых объектов:

Основной синтаксис для создания новых экземпляров объектов это использование метода класса %New:

Set oref = ##class(Classname).%New()

где oref ссылка OREF на новый объект и Classname это имя класса, чувствительно к регистру букв и может содержать имя пакета.

##class() – это макровызов, который используется для вызова методов класса.

Например, для создания нового объекта Person используется следующий синтаксис:

Set person = ##class(MyApp.Person).%New()

Методу %New можно передать необязательный параметр. Если он присутствует, этот аргумент передается методу-триггеру %OnNew объекта. Использование этого аргумента зависит от реализации конкретного класса.

Открытие объектов:

Можно открыть существующий хранимый объект с помощью его идентификатора

ID, используя следующий синтаксис:

Set oref = ##class(Classname).%OpenId(ID)

где oref – это переменная, содержащая OREF открываемого объекта, Classname это имя класса, ID это идентификатор открываемого объекта. Classname чувствителен к регистру букв. Например, чтобы открыть объект Sample.Person с ID 22:

Set person = ##class(Sample.Person).%OpenId(22)

Write person.Name,!

где person это новая объектная ссылка OREF на объект Person.

Можно также открыть объект, используя его полный OID:

Set oref = ##class(Classname).%Open(oid)

где oref содержит ссылку OREF, Classname имя класса, oid это полный OID объекта.

Обычно приложения используют метод %OpenId.

Имея открытый объект можно просматривать или изменять его свойства.

1.16 Работа со свойствами-списками и свойствами-массивами в Cache.

Существует два типа списков свойств:

• Список типов данных

• Список объектов.

Do oref.PropertyName.Insert(data) - добавление данных.

Do oref.PropertyName.Insert(ItemOref) - добавление встроенного объекта, где ItemOref – это ссылка OREF на встроенный объект.

Do oref.PropertyName.InsertObject(ItemOid) - добавление хранимого объекта, где ItemOid – это OID объекта.

Do oref.PropertyName.SetAt(data,n) – вставка данных.

Do oref.PropertyName.SetAt(ItemOref,n) – добавить встроенный объект в позицию n.

Do oref.PropertyName.SetObjectAt(ItemOid,n) – добавить хранимый объект в позицию n.

Do oref.PropertyName.InsertAt(data,n) - вставить данные в позицию n.

Do oref.PropertyName.InsertAt(ItemOref,n) – вставить встроенный объект в позицию n.

Do oref.PropertyName.InsertObjectAt(ItemOid,n) – вставить хранимый объект в позицию n.

Set oref.PropertyName.GetAt(n).ListPropertyName = data – изменение свойства объекта.

Существует два типа свойств-массивов:

• Массивы типов данных

• Массивы объектов.

Do oref.PropertyName.SetAt(data,key) - добавить элемент к массиву типов данных

Do oref.PropertyName.SetAt(ElementOref,key) – добавить встроенный объект в массив, где ElementOref это OREF нового элемента, и key это ключ, связанный с новым элементом.

Do oref.PropertyName.SetObjectAt(ElementOid,key) – добавление хранимого объекта, где ElementOid - это OID нового элемента, key – ключ, связанный с новым элементом.

Set oref.PropertyName.GetAt(key).ArrayPropertyName = data – изменить свойства объекта в массиве.