- •Csp. Методы, выполняющиеся на стороне сервера.
- •Csp. Скрипты, выполняющие код Cache.
- •Доступ к полям формы. Класс %csp.Rcqucst.
- •Единая архитектура данных Cache.
- •Методы классов и объектов в Cacho. Видимость методов. Язык метода.
- •Методы объектов. Передача параметров. Возвращаемые значения.
- •1.7 Недостатки реляционной модели. Причины появления объектно-ориентированных баз данных.
- •1.8 Операции с множествами объектов Cache.
- •1.9 Определение класса Cachd. Синтаксис.
- •1.10 Основные команды языка Cache Object Script
- •1.11 Основные свойства объектно-ориентированной модели согласно odmg 2.0.
- •1.12 Основные теги csp.
- •1.13 Основы технологии csp. Выражения Cache.
- •1.14 Преимущества и недостатки объектно-ориентированных баз данных по сравнению с реляционными базами данных.
- •1.15 Работа с объектами. Создание новых объектов. Открытие объектов.
- •1.16 Работа со свойствами-списками и свойствами-массивами в Cache.
- •1.17 Свойства - ссылки на объекты. Свойства - встраиваемые объекты.
- •1.18 Свойства классов Cache. Синтаксис определения свойств. Ключевые слова, используемые со свойствами.
- •1.19 Типы классов в Cache.
- •1.20 Язык Cache Objoct Script. Основные характеристики.
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 – изменить свойства объекта в массиве.