Хранимые классы объектов обладают обширными функциональными возможностями, обеспечивающими длительное хранение их экземпляров в базе данных. Збережені класи об'єктів володіють великими функціональними можливостями, які забезпечують тривале зберігання їх примірників у базі даних. Эти возможности наследуются от системного класса %Library. Ці можливості успадковуються від системного класу% Library. Persistent. Persistent.
Экземпляры хранимых классов обладают однозначными объектными идентификаторами (OID) и могут независимо храниться в Cache. Примірники зберігаються класів мають однозначними об'єктними ідентифікаторами (OID) і можуть незалежно зберігатися в Cache. Когда хранимый объект Коли зберігається об'єкт
используется как свойство класса, говорят о ссылке на хранимый объект. використовується як властивість класу, говорять про посилання на зберігається об'єкт.
Кроме рассмотренный типов для классов можно определить также следующие атрибуты типа: Крім розглянутий типів для класів можна визначити також наступні атрибути типу:
Abstract – абстрактный класс не дает возможность создавать объекты,но может служить родительским классом Abstract - абстрактний клас не дає можливість створювати об'єкти, але може служити батьківським класом
Extends - класс – наследник, для которого определен родительский класс Extends - клас - спадкоємець, для якого визначено батьківський клас
CSP - класс, используемы для разработки WEB-приложений CSP - клас, використовувані для розробки WEB-додатків
18. Системні Z функції для форматування чисел
$JUSTIFY (expression,width[,decimal]) повертає строку expression вирівняну по правій стороні з шириною поля width. Параметр decimal задає кількість знаків після коми. Якщо decimal не задано, всі лишні нулі будуть «обрізані».
$JUSTIFY використовується для форматованого виводу разом з командою WRITE. $FNUMBER(inumber,format,decimal)
Форматує число inumber способом зазначеним у format; можливе округлення до заданої точності. Можливі значення format: +(стандартне) – повертає значення зі знаком додатного числа (+ стандартно), якщо число менше нуля зі знаком відємного числа. - – повертає відємне число без знаку – . – повертає число з використанням стандартних європейських правил форматування ( «,» розподілює цілу та дробову частини ; «.» розділяє розряди, стандартна довжина яких встановлена як 3)
E – науковий (експоненційний) формат чисел
$INUMBER(fnumber,format,erropt)
Перевіряє число fnumber на відповідність формату та повертає його відформатоване значення або помилку.
$NUMBER(num,format,min,max)
Повертає число num, оброблене способом заданим у format, у канонічній для Cache формі. Аргументи min, max задають діапазон чисел.
19. Властивості – посилання. Приклад
Властивості представляють стан об’єктів, що зберігається в атрибутах об’єкту. Можливість доступу до властивостей та виконання операцій над ними базується на об’єктній моделі Caché та визначенні класу. Загальні характеристики властивостей:
- властивості можуть бути константами, посиланнями на збережені об’єкти, вбудованими об’єктами, потоками даних (BLOBs), колекціями констант або об’єктів;
- із властивостями безпосередньо пов’язаний набір методів перевірки та збереження значень, що виконуються автоматично;
- при наданні доступу до значень властивостей, а також при їх збереженні можна змінювати формат та виконувати інші перетворення даних;
- об’єкти, на які посилаються, і вбудовані об’єкти при зверненні до відповідних властивостей автоматично завантажуються в пам’ять.
- В Caché кожен клас можна розглядати як тип даних. Якщо при визначенні властивості замість класу типу даних вказати збережений клас, тим самим буде утворене посилання на збережений об'єкт. У цьому випадку, значеннями властивості будуть посилання на екземпляри відповідного класу. Наприклад, так можна визначити властивість Manufacturer, що є посиланням на збережений клас об'єктів User.Manufacturer:
- Property Manufacturer As User.Manufacturer;
20. Системні функції $ASCII , $Char
- $ASCII(expression [,position]) обирає зі строки перший аргумент-символ і повертає код ASCII цього символа. Другий аргумент задає позицію символа в рядку. Якщо він відсутній, то використовується перший символ рядка. Якщо рядок символів є пустим рядком, або другий аргумент менше 1 або більше довжини рядка, то функція повертає значення 1.
WRITE $ASCII("W") //87
SET Z="TEST"
WRITE $ASCII(Z) //84
SET Z="TEST"
WRITE $ASCII(Z,3) //83
- $CHAR(expression,...) конвертує висло у відповідний символ з таблиці ASCII. Від’ємні аргументи допустимі і повертають пусту строку.
WRITE !,$CHAR(65,66,67) //ABC
WRITE !,$CHAR(-67) //пуста строка
21. Класи. Властивості – колекції
Властивості представляють стан об’єктів, що зберігається в атрибутах об’єкту. Можливість доступу до властивостей та виконання операцій над ними базується на об’єктній моделі Caché та визначенні класу. Загальні характеристики властивостей:
- властивості можуть бути константами, посиланнями на збережені об’єкти, вбудованими об’єктами, потоками даних (BLOBs), колекціями констант або об’єктів;
- із властивостями безпосередньо пов’язаний набір методів перевірки та збереження значень, що виконуються автоматично;
- при наданні доступу до значень властивостей, а також при їх збереженні можна змінювати формат та виконувати інші перетворення даних;
- об’єкти, на які посилаються, і вбудовані об’єкти при зверненні до відповідних властивостей автоматично завантажуються в пам’ять.
Властивості, що містять безліч значень, можуть бути представлені в Caché у вигляді колекцій. Будемо розрізняти два види колекцій:
- колекції масиви (Array ollections), елементи сортуються за допомогою ключа;
- колекції - упорядковані списки (List Collections). Колекція-список являє собою впорядкований список елементів, у якому кожен елемент визначається номером своєї позиції.
Колекції можуть містити константи, вбудовані об'єкти й посилання на об'єкти. Основи cвoєї поведінки колекції успадковують від спеціальних системних класів, що залежать від типу колекції й типу її вмісту.
22. Системні функції $Random, $Text
- $RANDOM(range) повертає псевдовипадкове ціле число починаючи з 0 і < range. Якщо потрібно дійсно випадкове число, то в такому випадку необхідно використовувати функцію $System.Encryption.GenCryptRand()
$ Text повертає текст рядка програми Cache ObjectScript зрозуміло за умови, що мається на вихідному коді. (Если строка отсутствует в исходном коде, $Text выдает пустую строку если же отсутствует весь исходный КОД, то функция возвращает лишь содержимое строк комментария начинающихся с двух точек с запятой,) В первой форме $Text ссылается на относительный строки (например, +З для третьей строки). (Якщо рядок відсутній у вихідному коді, $ Text видає порожню рядок якщо ж відсутній весь вихідний КОД, то функція повертає лише вміст рядків коментаря починаються з двох точок з комою,) У першій формі $ Text посилається на відносний рядка (наприклад, + З для третього рядка). Если это число равно 0, возвращается имя программы Якщо це число дорівнює 0, повертається ім'я програми
В следующем при мере показана вторая форма, когда задается имеющаяся в программе метка строки, которая далее (с меткой) и возвращается в качестве результата. У наступному при мірою показана друга форма, коли задається наявна в програмі мітка рядка, яка далі (з міткою) і повертається в якості результату. Если имя программы отсутствует, то метка ищется в загруженной в раздел программе Якщо ім'я програми відсутній, то мітка шукається в завантаженою в розділ програмі
>Write $Text(+3) > Write $ Text (+3)
Read "Еingabe: ", х Read "Еingabe:", х
>Write $Text(+0) > Write $ Text (+0)
P1Spec P1Spec
>Write $Text(Label) > Write $ Text (Label)
Label Set a1.b2 Label Set a1.b2
23. Співвідношення Класи – елементи реляційної БД
Классы Cache также могут быть представлены в виде реляционных таблиц, причем соотношения между разнообразными понятиями объектного и реляционного подходов представлены ниже: Класи Cache також можуть бути представлені у вигляді реляційних таблиць, причому співвідношення між різноманітними поняттями об'єктного і реляційного підходів представлені нижче:
Объектное понятие Об'єктне поняття
Реляционное понятие Реляційне поняття
Класс Клас
Таблица Таблиця
Экземпляр Примірник
Строка Рядок
Идентификатор объекта (OID) Ідентифікатор об'єкта (OID)
Колонка первичного ключа Колонка первинного ключа
Свойство-константа Властивість-константа
Колонка Колонка
Ссылка на хранимый объект Посилання на що зберігається об'єкт
Внешний ключ Зовнішній ключ
Сериализуемый объект Серіалізуємий об'єкт
Индивидуальные столбцы Індивідуальні стовпці
Коллекция-список Колекція-список
Колонка с полем-списком Колонка з полем-списком
Коллекция-массив Колекція-масив
Подтаблица Підтаблиця
Поток данных Потік даних
BLOB BLOB
Индекс Індекс
Индекс Індекс
Запрос Запит
Хранимая процедура или представление Процедура, що зберігається або подання
Метод класса Метод класу
Хранимая процедура Процедура, що зберігається
Отметим, что в таблице не обозначены понятия параметров класса, многомерных свойств и методов объекта, так как в реляционной технологии им нет аналогов. Відзначимо, що в таблиці не позначені поняття параметрів класу, багатовимірних властивостей і методів об'єкта, так як в реляційної технології їм немає аналогів. Дополнительно к объектным понятиям в Cache поддерживаются еще и триггеры, присутствующие в реляционном представлении. Додатково до об'єктним поняттям в Cache підтримуються ще і тригери, присутні в реляційному поданні.
24. Системні функції $Select, $Case
- $SELECT(expression:value,...) повертає значення, що відповідає першому істинному логічному виразу.
READ !,"Which level: ",a
SET x=$SELECT(a=1:"Level1",a=2:"Level2",a=3:"Level3")
- $CASE(target,case:value,case:value,...,:default) в залежності від значення першого параметра повертає значення відповідного виразу в списку аргументів. Останній аргумент може бути значенням за замовчуванням.
SET daynum=3
WRITE $CASE(daynum,
1:"Sunday",
2:"Monday",
3:"Tuesday",
4:"Wednesday",
5:"Thursday",
6:"Friday",
7:"Saturday",
:"entry error")
25. Атрибути класу Cache
Классы определения типов данных ( атрибут типа - DataType) Класи визначення типів даних (атрибут типу - DataType)
Классы типов данных это специальные классы, определяющие допустимые значения констант и позволяющие их контролировать. Класи типів даних це спеціальні класи, що визначають допустимі значення констант і дозволяють їх контролювати. Объекты классов типов данных не имеют независимой идентификации и от них не могут образовываться экземпляры. Об'єкти класів типів даних не мають незалежної ідентифікації і від них не можуть утворюватися екземпляри. Они просто приписываются атрибутам объектов и определяют их значения. Вони просто приписуються атрибутів об'єктів і визначають їх значення.
Классы типов данных содержат предопределенный набор методов проверки и преобразования значений атрибутов. Класи типів даних містять зумовлений набір методів перевірки та перетворення значень атрибутів. Эти классы не могут содержать свойств . Ці класи не можуть містити властивостей.