Вивчаємо програмування в Gupta Team Developer. Крок 5 – Робота з БД

Частина 4


Дана стаття є п'ятою у циклі статей під загальною назвою "Вивчаємо програмування в TD / GUPTA", в якому ми постараємося дати початківцю програмних продуктів GUPTA всю необхідну інформацію для вивчення програмування і отримання навичок створення інформаційних систем. У ній ми розглянемо роботу c БД і засобами їх побудови. Для успішного засвоєння матеріалу читачеві бажано познайомитися з попередніми статтями з цього циклу, які розміщені на нашому сайті.


Введення


Безсумнівно, програмний продукт TD можна використовувати для широкого класу задач в області інформаційних технологій, і це, можливо, читачеві вже зрозуміло з попередніх статей, однак найбільш ефективно застосування цих засобів розробки для додатків, що працюють з базами даних (БД). Саме для цих завдань дані засоби розробки і були створені. Для зручності в середу TD вбудовано дуже зручний засіб для інтерактивної роботи з БД – DataBase Explorer. Ця компонента дозволяє створювати БД і таблиці, формувати вихідні документи (Reports), Заносити нові дані і виконувати SQL запити і навіть скрипти запитів. Існують і інші можливості у цієї компоненти, наприклад, для створення збережених процедур, але ми будемо ці можливості розглядати пізніше в наступних статтях.


Для повноцінної роботи по створенню інформаційних систем, їх розробки та налагодження в пакет TD включений однокористувацький сервер SQLBase. Цей СУБД повністю сумісний за всіма характеристиками з багатокористувацьким сервером SQLBase, тому й БД і програми, що працюють з ними, без проблем переносяться в мережеву середу клієнт-сервер. Крім того, для виконання зручною відладки із середовища забезпечується два підключення (Connect), що дозволяє одночасно налагоджувати запити в інтерактивному середовищі DataBase Explorer і тестувати програми.


І, нарешті, читач в даній статті побачить і, безсумнівно, позитивно оцінить простоту і наочність роботи з БД за допомогою спеціальних функцій, в яких можна явно вказувати настроюються SQL запити. Для початкового знайомства з даними можливостями призначається ця стаття.
Для успішного і самостійного освоєння матеріалу даної статті, який, ми дуже сподіваємося, може служити своєрідним самовчителем програмування на Centura TD, бажано познайомитися і виконати завдання статей "Крок 1-4".


Вбудоване засіб DataBase Explorer


Познайомимося спочатку з DataBase Explorer. І з його допомогою створимо БД для побудови програми. Для його виклику, після запуску TD, потрібно в пункті головного меню Tools вибрати позицію DataBase Explorer …. Після це у правій частині екрану ви отримаєте перелік серверів БД, до яких у вас було налаштоване підключення при інсталяції TD. Виберете SQLBase в списку серверів, для чого двічі клацніть мишкою та отримаєте список доступних БД для роботи, ці БД вже створені. Виберемо БД ISLAND (Це стандартна БД, яка розгортається при інсталяції TD для підтримки прикладів) і в спеціальному вікні підключення (див. малюнок нижче) натиснемо на кнопку "Connect", вводити ім'я користувача і пароль для цього не потрібно. У результаті, після послідовного відкриття дерева в правій частині: БД ISLAND->Tables-> BUDGET, Ми отримаємо вікно представлене на малюнку 1a, розташованому нижче. На рис. 1b показано вікно, яке ми отримаємо після виконання операцій створення нової БД COMPANY і її таблиць (у процесі навчання). Перейдемо тепер до дій зі створення нової БД.

(А)

(b)

Рис. 1 Вікно вбудованої компоненти DataBase Explorer в TD. Початкове положення для стандартної БД ISLAND (a) і вікно з створюваної БД COMPANY (b)


Створення БД


Для створення нової БД, що працює під управлінням SQLBase (у нашому випадку локального сервера), необхідно в дереві DataBase Explorer виділити SQLBase і викликати для користувача меню правою кнопкою. У цьому меню потрібно вибрати позицію "New Database…"Після цього на екрані з'явиться вікно, представлене на малюнку 2.

Рис. 2 Створення нової БД COMPANY в DataBase Explorer


У даному вікні введемо ім'я нової БД (DataBase Name), У нашому випадку – COMPANY і натиснемо кнопку "ОК". В результаті буде створена і налаштована нова БД для даного сервера – це Server1 (назва сервера ми поки змінювати не будемо). Відзначимо, попутно, що в TD одночасно підтримується робота з декількома серверами БД, для чого імена серверів мають відрізнятися. Для підключення до нової БД виберемо її в дереві праворуч і з вікні підключення натиснемо кнопку "Connect"(Мал. 3). Пароль і користувача в даному випадку вказувати не треба, тому що за замовчуванням задається SYSADM/SYSADM.

Рис. 3 Підключення до БД COMPANY в DataBase Explorer


Робота з БД в DataBase Explorer


Після підключення до БД ми можемо побачити її вміст, яке розділене на чотири розділи: таблиці (Tables), Відображення (Views), Індекси (Indexes) І збережені процедури (Stored Procedures). У даній статті ми будемо використовувати поки тільки розділ таблиць.

Рис. 4 Перегляд дерева змісту БД в DataBase Explorer


Ми створимо БД, що складається з 3-х таблиць:



Примітка: Для простоти БД і спрощення матеріалу статті, ми спочатку не будемо задавати ключі (первинні і вторинні), індекси і включати інші можливості і механізми СУБД, які, безсумнівно, SQLBase підтримує в повній мірі.


Опис наших таблиць наведено нижче в форматі мови SQL:


OTDEL: CREATE TABLE OTDEL




(CODE INTEGER, – код відділу
NAME CHAR (40), – назву
SCOUNT INTEGER, – число співробітників
FONDZ FLOAT, – фонд зарплати відділу
FONDZN FLOAT, – фонд надбавок до зарплати
CODEMAN INTEGER, – код начальника
WORKOTD CHAR (140)); – опис функцій відділу


EMPLOY: CREATE TABLE EMPLOY




(CODE INTEGER, – код співробітника
CODEOTD INTEGER, – код відділу
NAME CHAR (20), – ім'я
FAM CHAR (20), – прізвище
OTCH CHAR (20), – по батькові
NADB FLOAT, – надбавка
OKLAD FLOAT, – оклад
DATER DATETIME, – дата народження
CODEDOL INTEGER, – код посади
WORK CHAR (80)); – характеристика працівника


DOLG: CREATE TABLE DOLG




(CODEDOL INTEGER, – код посади
NAMEDOL CHAR (20)); – назва посади


Текстові пояснення в одному рядку дані в скриптах для спрощення, при виконанні запитів їх необхідно помістити в окремому рядку або опустити.


Створити БД можна: в інтерактивному режимі, вводячи опису полів вручну або виконавши скрипт завантаження БД (step5_DB.uld), який можна скачати тут (для редактора: тут потрібно забезпечити скачування скрипта – Step5_DB.uld). Для автоматичного створення таблиць і початкових даних потрібно виконати команду SQLBase:


LOAD SQL "з: step5_DB.uld";


під керуванням вбудованого або автономного засобу SQLTalk (Див. нижче). Шляхи доступу до файлу завантаження, природно, можуть відрізнятися.


Розглянемо процедуру створення таблиці в інтерактивному режимі. Для цього потрібно правою кнопкою на "Tables"Викликати для користувача меню, в якому вибрати"New Table…". Далі потрібно ввести інформацію, показану на малюнку 5. Після введення, використовуючи для користувача меню в зоні опису полів, потрібно підтвердити зміни -"Apply Edits". Порожня таблиця заданої структури буде запам'ятати в БД. Зверніть увагу, що ми автоматично використовували закладку"Definition"В правій частині DB Explorer.

Рис. 5 Створення нової таблиці OTDEL в DataBase Explorer


Для введення даних у таблицю необхідно вибрати закладку "Data". Вікно DB Explorer в цьому режимі показано на наступному малюнку (Мал. 6). У цьому стані ми можемо додавати нові записи в таблицю, редагувати існуючі та видаляти непотрібні. Для додавання записів за допомогою призначеного для користувача меню (права кнопка в таблиці) потрібно додати рядок – "New Row". Далі в нижній частині екрана сформується виділена рядок таблиці, в яку можна вводити нові дані (ця зона виділена розділової лінією). Вводити можна будь-яке число рядків, при цьому для підтвердження остаточного введення потрібно виконати операцію – "Apply Edits", А для скасування введення -"Discard Edits". У нашому випадку при введенні даних необхідно самостійно контролювати коректність кодів відділів – вони не повинні збігатися. Аналогічним чином ви можете створити і ввести дані в таблиці співробітників (EMPLOY) і посад (DOLG).


Примітка: Для виконання операцій можна використовувати також і автоматично формується пункт меню в режимі DB Explorer – "Data Base Explorer". У цьому пункті доступні підменю для виконання всіх основних операцій з БД і таблицями.

Рис. 6 Введення нових даних у таблицю OTDEL в DataBase Explorer


СУБД SQLBase


Коли ви працюєте з DB Explorer, то у вас забезпечується автоматичне підключення до СУБД SQLBase. У нашому випадку ми підключаємося до СУБД, розрахованим на 5 користувачів, який встановлений окремо. Якщо ви використовуєте СУБД, що входить в постачання TD, то у вас буде однокористувацький варіант, єдина відмінність якого проявитися в заголовку (замість 5 Client у вас буде 1 Client). Всі функції СУБД і доступні дії будуть аналогічні. Зовнішній вигляд консолі СУБД наведено на малюнку нижче (Мал. 7). Тут ми дамо тільки коротку характеристику СУБД і його консолі. Детальний опис СУБД і його можливостей дано у статті на нашому сайті.


Для управління і контролю передбачено меню і чотири інформаційних вікна:



Примітка: Обидва цих вікна можуть показувати інформацію з різними рівнями деталізації (доступно 5 рівнів деталізації).



У нашому випадку ми бачимо БД COMPANY у вікні БД і клієнта WIN32CLI2000 підключеного до цієї БД. Для скорочення малюнка частина вікна, де вказується ім'я БД приховано ліворуч. Розташування вікон консолі, їх склад легко регулюється. Для доступу до консолі може бути встановлений пароль адміністратора. Передбачена можливість формування журналів для різних вікон.

Рис. 7 Консоль СУБД SQLBase при підключенні клієнта WIN32CL2000


Консоль СУБД може бути ефективно використана для детального аналізу запитів та дозволи позаштатних ситуацій. Але подальше її розгляд виходити за рамки цієї статті, на додаткові можливості ми зупинимося пізніше.


Компонента SQLTalk


При необхідності ми можемо переключити DB Explorer в режим безпосереднього виконання SQL запитів і додаткових команд, які входять до розширення мови взаємодії з СУБД як команди SQLTalk. Вікно в режимі SQLTalk показано на малюнку 8. Для переходу в цей режим потрібно при вибраної БД відкрити закладку SQLTalk, яка розділена на дві частини: зверху розташоване вікно введення SQL команд, а знизу результат їх виконання. На малюнку показані результати виконання команд встановлення сервера, створення БД і підключення до неї. У нашому випадку команди були виконані в одиночному режимі, для чого після виділення рядки з командою потрібно натиснути клавіші – Schift + F2. У цьому режимі передбачена можливість виконання цілого скрипта SQL команд, для чого потрібно натиснути F5. Повний набір можливостей можна уточнити при використанні користувальницького меню, яке викликається правою кнопкою миші. Тут є: відкриття і збереження скриптів, виконання COMMIT і ROLLBACK, пошуку та заміни, а також управління виведенням інформації.

Рис. 8 DataBase Explorer в режимі ручного введення запитів (SQL Talk)


Введіть свої команди для створення таблиці DOLG (див. вище), а потім перейдіть в режим введення даних у таблицю (вибір таблиці DOLG і закладки Data) і введіть набір посад, як показано на малюнку 9.

Рис. 9 Дані, занесені в таблицю DOLG


Створення програми для роботи з БД


Після створення БД ми можемо приступити до створення програми працює з БД.
Ми побудуємо додаток представлене одним вікном (див. малюнок 10), в якому будуть виконуватися основні операції: підключення до БД та відключення від БД; заповнення списку даними та заповнення таблиць на основі SQL запитів різного виду. Вікно в початковому стані (до заповнення) представлено на малюнку нижче.

Рис. 10 Вид вікна програми для вивчення роботи з БД


Відзначимо, що до підключення до БД кнопки заповнення недоступні. Підключення до БД виконується натисканням кнопки "Підключитися". Якщо БД, користувач та пароль не вказано, то у нас використовуються параметри підключення за замовчуванням: COMPANY / SYSADM / SYSADM. При виконанні операції підключення кнопки заповнення включаються. При відключенні від БД (кнопка "Відключитися") Кнопки заповнення повертаються в початковий стан.


Після виконання операцій заповнення об'єктів віконного інтерфейсу з БД воно має виглядати так, як показано на малюнку 11. Список повинен бути заповнений даними (NAME) з таблиці DOLG, після натискання кнопки “Додати з БД". Поле"Обрано"Показує значення поточного вибраного у списку елемента. Таблиця"Автоматично – співробітники"Заповнюється при натисканні кнопки"Додати без колонок"З таблиці EMPLOY. Особливість такого заповнення полягає в тому, що попередньо таблиця, що підлягає заповненню, не містить заздалегідь визначених стовпців (колонок) – вони формуються на основі самого SQL запиту. Таблиця "Таблиця за запитом для співробітників"Формується на основі SQL запиту з колонками створеними і пойменованими заздалегідь. Цей запит будуватися на основі зв'язки (JOIN) двох таблиць: співробітників (EMPLOY) і посад (DOLG).

Рис. 11 Вікно програми (step5) після заповнення даних їх БД


Вікно "Відділи"Заповнюється з БД при натисненні на кнопку"Додати з БД відділи". Інформація вибирається з таблиці OTDEL. Кнопки"Очистити … "Призначені для очищення таблиць. Відзначимо, що в даному випадку (режимі заповнення), після заповнення віконних таблиць всі таблиці БД звільняються для подальшого використання. У нашому додатку ми застосовуємо найпростіший спосіб заповнення інтерфейсних об'єктів на основі функцій популяції: SQLxxxPopulate (SQLListPopulate і SQLTblPopulate). Ці функції представляють "середній" рівень взаємодії з БД. Більш високим рівнем є спосіб взаємодії на основі спеціальних класів – QUICK OBJECT, А більш низькими рівнями: взаємодія на основі SQL API або на основі роботи з вибіркою (Result Set). Ці механізми для роботи з БД з TD ми розглянемо у наступних статтях цього циклу. Тут же зупинимося на самому наочному і досить ефективний спосіб. Суть його полягає в тому, що для роботи з БД використовуються спеціальні функції, в якості одного з параметрів є рядок SQL запиту (тип String), Записаного в природному вигляді (як – "SELECT * FROM …"). Другим обов'язковим параметром цих функцій є курсор (Sql Handle) одержуваний після підключення до БД (connect). Поки курсор існує, ми маємо можливість доступу до БД. Після відключення (disconnect) БД ставати недоступною. Так як в мові SAL передбачені всі можливості роботи з рядками, то зробити запит, а разом з ним і додаток динамічно настроюється. Дані можливості ми також торкнемося згодом.


Нижче представлений перелік об'єктів нашого застосування. Думаю, що не потрібні додаткові пояснення їх призначення, тому що багато чого ясно за назвою об'єктів у цьому списку і легко їх зіставити з візуальними об'єктами вікна додатка. Якщо ж у вас виникнуть труднощі в цьому, зверніться до програми додатки (step5.app), яка доступна для вас нижче.

Рис. 12 Об'єкти програми для вивчення операцій з БД


Курсори та їх опис


Для підключення до БД необхідно визначити змінні типу курсор (Sql Handle). Це робиться в розділі змінних (Variables) вікна, як показано на рис. 13.

Рис. 21 Заповнення таблиці tblTest з БД функцією SalTblPopulate c явною вказівкою колонок таблиці (colName, colOklad і colDolg)


Якщо ви проробили правильно всі операції: створили БД, заповнили її значеннями, створили вікно і віконні об'єкти і внесли до їх обробники відповідний текст, то ви отримаєте додаток, представлене на малюнках 10 і 11. Можете спробувати змінити вид запитів, структуру таблиць як екранних, так і БД.


Додаток, який ви отримаєте (step5.app), можна завантажити тут.


Висновок


У наступній статті цього циклу ми розглянемо інші методи роботи з БД в рамках TD. Зокрема використання вибірки для доступу до даних, синхронізацію віконних таблиць і таблиць БД. Створення пов'язаних таблиць та інші важливі елементи програмування при побудові інформаційних систем.

Частина 6

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*