Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Отношения зависимостиВідношення залежності



Відношення залежності це зв'язок між таблицями, в якому рядки однієї таблиці (підтаблиці) своїм існуванням залежать від рядків іншої таблиці (батьківської),

 

36. Системні Z функції $ZLn, $ZLOG, $ZEXP

- $ZLN(n) – натуральний логарифм числа. N>=0 інакше буде помилка.

SET x=$ZEXP(1) ; x = 2.718281828459045236

WRITE $ZLN(x)

- $ZLOG(n) – десятковий логарифм числа. N>=0 інакше буде помилка.

WRITE $ZLOG(.5) //-0,301029995663981195

- $ZEXP(n) – експонента числа. -295.4=<N<= 335.6 інакше буде помилка.

SET x=7

WRITE $ZEXP(x),!

 

37. Курсори Cache

Якщо необхідно отримати та обробити кілька рядків, необхідно використовувати так званий курсор. Курсор в данном случае является указателем на одну строку и при проведении операции FETCH курсор передвигается к следующей строке. Курсор в даному випадку є покажчиком на один рядок і при проведенні операції FETCH курсор пересувається до наступного рядка. Імя курсору повинно бути унікальним в межах класу або процедури.

Использование курсора предполагает выполнение следующей последовательности операций: Використання курсору передбачає виконання наступної послідовності операцій:

· Объявление курсора; Оголошення курсору;

· Открытие курсора; Відкриття курсору;

· Проведение серий операций чтения (FETCH) для курсора; Проведення серій операцій читання (FETCH) для курсора;

· Закрытие курсора. Закриття курсору.

Использование курсора в COS программе с помощью встроенного SQL: Використання курсору в COS програмі за допомогою вбудованого SQL:

SQLTestSQLTest
set kolpat = 0 set namep ="a" set kolpat = 0 set namep = "a"
&sql(select Count(*) into :kolpat from Family.Patient ) w kolpat,! & Sql (select Count (*) into: kolpat from Family.Patient) w kolpat,!
// create and use kursor / / Create and use kursor
&sql(Declare patCursor CURSOR FOR select NAMEP From Family.Patient) & Sql (Declare patCursor CURSOR FOR select NAMEP From Family.Patient) //оголошення курсору
&sql(Open patCursor) & Sql (Open patCursor)
//відкриття курсору
for i=1:1:kolpat for i = 1:1: kolpat
{ {
&sql(Fetch patCursor into :namep) w namep,! & Sql (Fetch patCursor into: namep) w namep,!
} }
&sql(Close patCursor) & Sql (Close patCursor)

//закриття курсору
Quit Quit

В приведенном примере создается курсор patCursor, после чего он открывается, а затем строится цикл в котором помощью команды FETCH производится сканирование содержимого первой записи в локальную переменную namep. У наведеному прикладі створюється курсор patCursor, після чого він відкривається, а потім будується цикл в якому допомогою команди FETCH проводиться сканування вмісту першого запису в локальну змінну namep. После этого курсор закрывается. Після цього курсор закривається. Для того, чтобы считать все содержимое курсора, необходимо последовательно в цикле вызвать операцию FETCH. Для того, щоб вважати весь вміст курсору, необхідно послідовно в циклі викликати операцію FETCH.

 

38. Системні Z функції $ZDATE, $ZDATEH

- $ZDATE(hdate[,dformat,monthlist,yearopt,startwin,endwin,mindate,maxdate,erropt]) перевіряє введену дату та змінює її формат, де hdate – ціле число кількості днів починаючи з 31.12.1840; dformat – формати дати, monthlist – строка або змінна, що містить імена місяців, yearopt – представлення року використовуючи 2 або 4 знаки, startwin та endwin – початок та кінець відповідно періоду використання дво- та чотирицифрового року, mindate та maxdate – нижня та верхня границя відповідно допустимих дат.

WRITE $ZDATE(26240,1) // 11/04/12

 

- $ZDATEH(date,dformat,monthlist,yearopt,startwin,endwin,mindate,maxdate,erropt) перевіряє введену дату та змінює її формат, де date – дата в строковому форматі; dformat – формати дати в числовому записі, monthlist – строка або змінна, що містить імена місяців, yearopt – представлення року використовуючи 2 або 4 знаки, startwin та endwin – початок та кінець відповідно періоду використання дво- та чотирицифрового року, mindate та maxdate – нижня та верхня границя відповідно допустимих дат.

WRITE !,$ZDATEH("November 2, 1954",5) //41578

 

39. Створення та використання списків користувача

Під списком розуміємо спеціальний вид строки, що містить окремі значення. Є два методи створення списку в Caché Object Script – це створення списків вручну, або з використанням спеціальних функцій.

При створенні списків вручну, окремі елементи відділяються один від одного розділовим символом. Наприклад:

Set list = “one/two/three/four/five”

Set PersonalInfo = “Іванов І.І. ^ Київ ^ Вишневського, 12 ^ 4563021/4124554”

Отже, використовувати в якості розділового знаку можна будь-який символ, причому список може містити в собі підсписки, які повинні мати відмінні від головного списку розділителі, при цьому рівень вкладеності необмежений.

Для роботи з такого виду списками використовуються стандартні функції роботи зі строками:

- $Length(list, delimiter) – для визначення кількості елементів у списку;

- $Piece(list,delimiter,from,to) – для отримання певних елементів списку.

Для другого випадку використовуються спеціальні функції створення та роботи зі списками:

- $ListBuild(element[,element][,element][...]) – створює список, де element – строка-елемент списка:

Set myList = $ListBuild("Red","Blue","Green","Yellow")

- $LISTLENGTH(list) – повертає значення кількості елементів у списку.

WRITE $LISTLENGTH($LISTBUILD("Red","Blue","Green")) //3

WRITE $LISTLENGTH($LISTBUILD("Red",,"Green")) //3

WRITE $LISTLENGTH("") //0

WRITE $LISTLENGTH($LB("Apple","Pear",$LB("Walnut","Pecan"))) //3

 

40. Системні Z функції для форматування чисел
$JUSTIFY (expression,width[,decimal]) повертає строку expression вирівняну по правій стороні з шириною поля width. Параметр decimal задає кількість знаків після коми. Якщо decimal не задано, всі лишні нулі будуть «обрізані».

$JUSTIFY використовується для форматованого виводу разом з командою WRITE.

$FNUMBER(inumber, format, decimal)

Форматує число inumber способом зазначеним у format; можливе округлення до заданої точності decimal. Можливі значення format:
+(стандартне) – повертає значення зі знаком додатного числа (+ стандартно), якщо число менше нуля зі знаком від’ємного числа.
- – повертає від’ємне число без знаку –
. – повертає число з використанням стандартних європейських правил форматування ( «,» розподіляє цілу та дробову частини ; «.» розділяє розряди, стандартна довжина яких встановлена як 3)

E – науковий (експоненційний) формат чисел

 

$INUMBER(fnumber,format,erropt)

Перевіряє число fnumber на відповідність формату та повертає його відформатоване значення або помилку.

 

$NUMBER(num,format,min,max)

Повертає число num, оброблене способом заданим у format, у канонічній для Cache формі. Аргументи min, max задають діапазон чисел.

 

41. Створення та використання системних списків

Під списком розуміємо спеціальний вид строки, що містить окремі значення. Є два методи створення списку в Caché Object Script – це створення списків вручну, або з використанням спеціальних функцій.

При створенні списків вручну (системних списків), окремі елементи відділяються один від одного розділовим символом. Наприклад:

Set list = “one/two/three/four/five”

Set PersonalInfo = “Іванов І.І. ^ Київ ^ Вишневського, 12 ^ 4563021/4124554”

Отже, використовувати в якості розділового знаку можна будь-який символ, причому список може містити в собі підсписки, які повинні мати відмінні від головного списку розділителі, при цьому рівень вкладеності необмежений.

Для роботи з такого виду списками використовуються стандартні функції роботи зі строками:

- $Length(list, delimiter) – для визначення кількості елементів у списку;

- $Piece(list,delimiter,from,to) – для отримання певних елементів списку.

Наприклад:

w $Length(list, “/”) //5

w $Length(PersonalInfo,”^”) //4

w $Piece(PersonalInfo, “^”, 2) // Київ

w $Piece($Piece(PersonalInfo, “^”, 4), “/”, 2) // 4124554

 

42. Типи даних Cache

Типи даних

Сасhе поддерживает неограниченное количество типов данных для свойств классов, причем каждый тип данных представляет собой класс. Сасhе підтримує необмежену кількість типів даних для властивостей класів, причому кожен тип даних являє собою клас. Вы можете реализовать ваши собственные типы данных (Advanced Data Types ADTs), определяя соответствующие классы типов данных. Ви можете реалізувати ваші власні типи даних (Advanced Data Types ADTs), визначаючи відповідні класи типів даних. Кроме того классы типов данных управляют поведением свойств объектов, когда они посредством SQL представляются в виде столбцов реляционных таблиц. Крім того класи типів даних керують поведінкою властивостей об'єктів, коли вони за допомогою SQL представляються у вигляді стовпців реляційних таблиць.

Классы типов данных обладают следующими функциональными возможностями: Класи типів даних володіють наступними функціональними можливостями:

· Определяют требуемые преобразования между форматом хранения (в базеданных), логическим (в памяти) и форматом отображения значений. Визначають необхідні перетворення між форматом зберігання (в базі даних), логічним (в пам'яті) і форматом відображення значень.

· Отвечают за проверку значений, которая в дальнейшем может конкретизироваться с помощью параметров классов типов данных. Відповідають за перевірку значень, яка в подальшому може конкретизуватися за допомогою параметрів класів типів даних.

· Обеспечивают взаимодействие с SQL, ODBC, ActiveX и Java, предоставляя в их распоряжение необходимые В каждом случае логические операции и методы преобразования данных. Забезпечують взаємодію з SQL, ODBC, ActiveX і Java, надаючи в їх розпорядження необхідні У кожному випадку логічні операції та методи перетворення даних.

Являясь особой формой классов, типы данных имеют принципиальные отличия т классов объектов: Будучи особливою формою класів, типи даних мають принципові відмінності від класів об'єктів:

· От классов типов данных невозможно образование экземпляров. Від класів типів даних неможливе утворення примірників (екземплярів).

· Классы типов данных не могут содержать свойств. Класи типів даних не можуть містити властивостей.

· Методы классов типов данных предоставляются программисту через интерфейс типов данных. Методи класів типів даних надаються програмісту через інтерфейс типів даних.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.