Слайд 22 способа создания базы
Создание базы с помощью специальных утилит и загрузка скрипта
![2 способа создания базы Создание базы с помощью специальных утилит и загрузка](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-1.jpg)
с описанием структуры базы (рекомендуется для опытных пользователей)
Создание базы с помощью инструмента Data Dictionary (рекомендуется для начинающих пользователей)
Слайд 3Пример (скрипт с описанием структуры)
...
ADD SEQUENCE "Next-Ref-Num"
INITIAL 1
INCREMENT 1
CYCLE-ON-LIMIT
![Пример (скрипт с описанием структуры) ... ADD SEQUENCE "Next-Ref-Num" INITIAL 1 INCREMENT](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-2.jpg)
no
MIN-VAL 1
ADD TABLE "Customer"
AREA "Customer/Order Area"
DESCRIPTION "Customer information"
DUMP-NAME "customer"
TABLE-TRIGGER "CREATE" NO-OVERRIDE PROCEDURE "sports/crcust.p" CRC "?"
TABLE-TRIGGER "DELETE" NO-OVERRIDE PROCEDURE "sports/delcust.p" CRC "?"
TABLE-TRIGGER "WRITE" NO-OVERRIDE PROCEDURE "sports/wrcust.p" CRC "?"
ADD FIELD "Cust-Num" OF "Customer" AS integer
FORMAT ">>>>9"
INITIAL "0"
POSITION 2
MAX-WIDTH 4
VALEXP "cust-num > 0"
VALMSG "Customer number must be greater than zero"
ORDER 10
ADD FIELD "Name" OF "Customer" AS character
FORMAT "x(20)"
INITIAL ""
POSITION 3
MAX-WIDTH 40
...
Слайд 6Создание новой базы с кодировкой по умолчанию
![Создание новой базы с кодировкой по умолчанию](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-5.jpg)
Слайд 8
Создание empty-базы с кодировкой 1251
C:\Progress\OpenEdge\bin\prodb.exe empty1251 C:\Progress\OpenEdge\empty
C:\Progress\OpenEdge\bin\_proutil.exe empty1251 -C convchar
![Создание empty-базы с кодировкой 1251 C:\Progress\OpenEdge\bin\prodb.exe empty1251 C:\Progress\OpenEdge\empty C:\Progress\OpenEdge\bin\_proutil.exe empty1251 -C convchar](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-7.jpg)
convert undefined -G 1
C:\Progress\OpenEdge\bin\_proutil.exe empty1251 -C convchar convert 1251 -G 1
Или взять готовую базу empty1251 (прилагается к презентации для версии 10.2B)
Слайд 9Создание новой базы с кодировкой, отличной от умолчания
![Создание новой базы с кодировкой, отличной от умолчания](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-8.jpg)
Слайд 14Упражнение 1
Создайте таблицу STUDENT со следующими полями:
![Упражнение 1 Создайте таблицу STUDENT со следующими полями:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-13.jpg)
Слайд 15Назначение индексов
ускорение доступа к записи;
автоматическое упорядочение записей при выводе;
контроль за уникальностью значений;
ускорение
![Назначение индексов ускорение доступа к записи; автоматическое упорядочение записей при выводе; контроль](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-14.jpg)
поиска соответствующих записей в связных таблицах.
Слайд 17Упражнение 2
Создайте следующие индексы для таблицы STUDENT:
![Упражнение 2 Создайте следующие индексы для таблицы STUDENT:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-16.jpg)
Слайд 18Создание секвенций
Sequence Name - имя секвенции
Initial Value - начальное значение (по умолчанию
![Создание секвенций Sequence Name - имя секвенции Initial Value - начальное значение](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-17.jpg)
- 0);
Increment by - шаг секвенции (по умолчанию - 1);
Upper Limit - максимальное значение (по умолчанию - ?);
Cycle at Limit - является ли секвенция циклической.
Слайд 19Операторы и функции для работы с секвенциями
CURRENT-VALUE (name-seq) = n - оператор,
![Операторы и функции для работы с секвенциями CURRENT-VALUE (name-seq) = n -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-18.jpg)
устанавливающий текущее значение секвенции равным n
NEXT-VALUE (name-seq) - функция, выдающая очередное значение секвенции (при этом изменяется текущее значение)
CURRENT-VALUE (name-seq) - функция, выдающая текущее значение cеквенции.
Слайд 20Упражнение 3
Создайте секвенцию S1 с начальным значением 0 и шагом 1. В
![Упражнение 3 Создайте секвенцию S1 с начальным значением 0 и шагом 1.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-19.jpg)
дальнейшем она будет использоваться для генерации номеров студентов в таблице student.
Слайд 21Триггеры
Триггеры уровня таблицы:
CREATE - добавление новой записи;
DELETE - удаление записи;
FIND -
![Триггеры Триггеры уровня таблицы: CREATE - добавление новой записи; DELETE - удаление](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-20.jpg)
чтение записи;
WRITE - изменение содержимого записи.
Слайд 22Триггеры
Триггер уровня поля:
ASSIGN - изменение содержимого поля.
![Триггеры Триггер уровня поля: ASSIGN - изменение содержимого поля.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-21.jpg)
Слайд 23Заполнение таблиц
Для работы с данными и для создания приложений в OPEN EDGE
![Заполнение таблиц Для работы с данными и для создания приложений в OPEN](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-22.jpg)
существует специальный язык – ABL (доклады по нему будут позднее).
Есть альтернативный способ работы с данными – SQL DML.
Возможный инструмент – Procedure Editor.
Слайд 25Заполните таблицу STUDENT содержимым (не менее 10 записей).
Упражнение 4
![Заполните таблицу STUDENT содержимым (не менее 10 записей). Упражнение 4](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-24.jpg)
Слайд 26Дампирование/загрузка структуры и содержимого таблиц
![Дампирование/загрузка структуры и содержимого таблиц](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-25.jpg)
Слайд 29Содержимое файла sports.df
ADD SEQUENCE "Next-Cust-Num"
INITIAL 1000
INCREMENT 5
CYCLE-ON-LIMIT no
MIN-VAL
![Содержимое файла sports.df ADD SEQUENCE "Next-Cust-Num" INITIAL 1000 INCREMENT 5 CYCLE-ON-LIMIT no](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-28.jpg)
1000
ADD SEQUENCE "Next-Inv-Num"
INITIAL 1000
INCREMENT 1
CYCLE-ON-LIMIT no
MIN-VAL 1000
ADD SEQUENCE "Next-Ord-Num"
INITIAL 1000
INCREMENT 5
CYCLE-ON-LIMIT no
MIN-VAL 1000
ADD SEQUENCE "Next-Item-Num"
INITIAL 100
INCREMENT 10
CYCLE-ON-LIMIT no
MIN-VAL 100
ADD SEQUENCE "Next-Ref-Num"
INITIAL 1
INCREMENT 1
CYCLE-ON-LIMIT no
MIN-VAL 1
ADD TABLE "Customer"
AREA "Customer/Order Area"
DESCRIPTION "Customer information"
DUMP-NAME "customer"
TABLE-TRIGGER "CREATE" NO-OVERRIDE PROCEDURE "sports/crcust.p" CRC "?"
TABLE-TRIGGER "DELETE" NO-OVERRIDE PROCEDURE "sports/delcust.p" CRC "?"
TABLE-TRIGGER "WRITE" NO-OVERRIDE PROCEDURE "sports/wrcust.p" CRC "?"
.....
Слайд 32Содержимое файла state.d
"AK" "Alaska" "West"
"AL" "Alabama" "South"
"AR" "Arkansas" "Central"
"AZ" "Arizona" "West"
"CA" "California"
![Содержимое файла state.d "AK" "Alaska" "West" "AL" "Alabama" "South" "AR" "Arkansas" "Central"](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/373751/slide-31.jpg)
"West"
"CO" "Colorado" "West"
"CT" "Connecticut" "East"
"DC" "Dst of Columbia" "East"
"DE" "Delaware" "East"
"FL" "Florida" "East"
"GA" "Georgia" "East"
"HI" "Hawaii" "West"
"IA" "Iowa" "Central"
"ID" "Idaho" "West"
"IL" "Illinois" "Central"
"IN" "Indiana" "East"
"KS" "Kansas" "Central"
"KY" "Kentucky" "East"
"LA" "Louisiana" "Central"
"MA" "Massachusetts" "East"
"MD" "Maryland" "East"
"ME" "Maine" "East"
"MI" "Michigan" "East"
"MN" "Minnesota" "Central"
"MO" "Missouri" "Central"
"MS" "Mississippi" "Central"
"MT" "Montana" "West"
"NC" "North Carolina" "East"
"ND" "North Dakota" "Central"
"NE" "Nebraska" "Central"
"NH" "New Hampshire" "East"
"NJ" "New Jersey" "East"
"NM" "New Mexico" "West"
"NV" "Nevada" "West"
"NY" "New York" "East"
"OH" "Ohio" "East"
"OK" "Oklahoma" "Central"
"OR" "Oregon" "West"
"PA" "Pennsylvania" "East"