Проектування дволанкової розподіленої інформаційної системи для роботи з БД із використанням SQL Interbase
Мета:
• створення БД;
• створення і використання індексів та переглядів БД;
• створення і використання тригерів, генераторів та збережених процедур на боці SQL-сервера;
• отримання практичних навичок обміну даними між прикладенням і БД.
Завдання:
Засобами SQL Interbase необхідно створити БД, декілька індексованих таблиць БД (головну і підлеглі) і декілька їх переглядів, а також зв’язати їх між собою.
Засобами С++Builder створити оригінальне(!) прикладення, яке повинне надавати мож-ливість:
• перегляду записів зв’язаних таблиць БД, у тому числі попередніх і наступних записів та із використанням створених переглядів;
• фільтрації записів БД із виведенням на екран записів, обраних у діалозі за вказаними критеріями;
• інкрементального пошуку даних у БД за вказаними критеріями;
• додавання і видалення записи таблиці БД, у тому числі із використанням створених на боці SQL-сервера тригерів, генераторів та збережених процедур;
• корегування полів поточного запису таблиці БД, у тому числі із використанням створе-ної на боці SQL-сервера збереженої процедури.
Вказівки до створення БД:
Для створення БД із використанням SQL Interbase необхідно:
• завантажити на виконання прикладення InterBase Windows ISQL, яке за звичай зберігає-ться за маршрутом "<диск>:\Program Files\InterBase Corp\ InterBase\ Bin\wisql32.exe", наприклад, “E:\Program Files\InterBase Corp\ InterBase\ Bin\wisql32.exe";
• виконати команду File | Create Database … і у віконці, яке з’явилося (мал. 1.1), вказати наведені параметри (параметри можуть бути довільними);
• виконати команду Metadata | Show … і у віконці, яке з’явилося (мал. 1.2), у полі View Information On: обрати з меню альтернативу Database. Якщо БД було успішно створено, то у вікні InterBase Windows ISQL з’явиться відповідне повідомлення (мал. 1.3).
• виконати команду File | Commit Work для збереження результатів роботи на диску;
• далі (вже засобами С++ Builder) командою Database | Explore завантажити на виконання прикладення Database Explore, командою Object | New | INTRBASE створити аліас dbP, обрати його на вкладинці Databases і вказати параметри, які наведено на мал. 1.4; потім виконати команду Object | Apply для збереження зроблених змін;
• у прикладенні InterBase Windows ISQL виконати команду File | Run an ISQL Script … і у вікні, що з’явилося (мал. 1.5), вказати ім’я файлу Createdb.sql, в якому набрано скрипт для створення таблиць БД;
Малюнок 1.1 Малюнок 1.2
Малюнок 1.3
Малюнок 1.4
Малюнок 1.5
Вміст цього файлу наведено нижче:
/* з’єднання з БД */
CONNECT "e:\Lr2\dbP\dbP.gdb" USER "SYSDBA" PASSWORD "masterkey";
/* створення таблиці PERS */
create table pers(
Num smallint Not Null Primary Key,
Dep char(15),
Fam char(20) Not Null,
Nam char(20) Not Null,
Par char(20) Not Null,
Year_b smallint,
Sex char(1),
Charact blob,
Photo blob
);
/* створення таблиці DEP */
create table dep(
Dep char(15) Not Null Primary Key,
Proisv char(15)
);
/* заповнення таблиці PERS */
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(1, "Бухгалтерія", "Іванов", "Іван", "Іванович", 1950, "ч");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(2, "Цех 1", "Петров", "Петро", "Петрович", 1960, "ч");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(3, "Цех 2", "Сидоров", "Сидор", "Сидорович", 1955, "ч");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(4, "Цех 1", "Іванова", "Ірина", "Іванівна", 1971, "ж");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(5, "Бухгалтерія", "Миколаєв", "Микола", “Миколайович", 1930, "ч”);
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(6, "Цех 2", "Андрієв", "Андрій", "Андрійович", 1930, "ч");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(7, "Цех 1", "Борисов", "Борис", "Борисович", 1937, "ч");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(8, "Цех 1", "Павлов", "Павло", "Павлович", 1975, "ч");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(9, "Бухгалтерія", "Антонова", "Антоніна", "Антонівна", 1965, "ж");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(10, "Цех 2", "Харитонов", "Харитон", "Харитонович", 1962, "ч");
Insert Into PERS(Num, Dep, Fam, Nam, Par, Year_b, Sex)
Values(11, "Цех 2", "Іванников", "Іван", "Іванович", 1975, "ч");
/* заповнення таблиці DEP */
Insert Into DEP( Dep,Proisv) Values("Бухгалтерія", "управління");
Insert Into DEP( Dep,Proisv) Values("Цех 1", "виробництво");
Insert Into DEP( Dep,Proisv) Values("Цех 2", "виробництво");
Commit;
Після натискання кнопки Открыть треба вказати, що результати виконання скрипту необхідно зберігати у файлі Result.txt. Скрипт виконується. ............