Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Підключення до бази даних Access з Delphi



Для підключення до бази даних Access на Форму1, яка буде головною в цьому проекті додаємо компонент ADO Connection. Це підключення забезпечить нам зв’язок з файлом розташованим за адресою: C: \Deeplom\Base.mdb, потрібно тільки правильно описати рядок підключення. На рис. 3.1 показано, як перейти до редагування цього рядка по правому кліку мишки. 

Рис 3.1. Редагування рядка підключення компоненту ADO Connecting.

 

На рис. 3.2 показано, як постачальник даних виберемо Microsoft Jet 4.0 OLE DB Provider. Через цей драйвер бази даних здійснюватиметься взаємозв’язок з файлом mdb, відробіток помилок, передача даних в обох напрямах.

 

Рис. 3.2 Вибір постачальника даних.

 

На другій вкладці «Підключення» безпосередньо настроюється підключення до бази даних.

На рис. 3.3, як відомості для підключення до бази даних, указуємо розташування файлу base.mdb, користувача за умовчанням – Admin (без пароля). Що б перевірити, що все зроблено правильно, натискаємо кнопку «Перевірити підключення».

Тепер у всіх запитах проекту як покажчик на джерело даних можна указувати ADOConnection1, а запити створювати напряму до таблиць розташованих у файлі base.mdb. Варто відзначити, що з іншої форми ми не побачимо джерело даних до тих пір, поки не підключимо форму1 в розділі Uses. [12, 19]

 

 

Рис. 3.3 Перевірка підключення до бази даних base.mdb.

 

 

Створення головного меню

На рис. 3.4 показано головне меню програми адміністрування. Для того, що б розділити задачі програми адміністрування автошколи, необхідно створити головне меню. На Форме1 розміщуємо набір кнопок,

подія кожної з яких запускатиме роботу з кожним напрямом конкретно. Основні напрями адміністрування – це:

- редагування учбових матеріалів за правилами дорожнього руху;

- редагування квитків і питань для перевірки знань;

- робота по обліку учнів (платежі, документи і т. д.);

- графік викладачів водіння.

 

Рис 3.4. Головне меню програми адміністрування

 

Після додавання кнопок, потрібно додати нові форми в проект Delphi. Для цього в головному меню натискаємо Файл – Новий – Нова форма. Зберігаємо її. Друга форма в проекті створюється з властивістю – Видима = False, тому що б її побачити потрібно звернеться до цієї властивості форми і зробити його видимим:

Form2.Visible: = True;

Або скористатися іншим способом. Є так званий модальний режим, коли вікно з’являється поверх інших вікон і блокує роботу інших розділів програми. Це буває корисне, коли розділені дані знаходяться на різних формах, а необхідно зробити так, що б користувач не зміг втрутитися в роботу інших форм. Показати вікно модально можна так:

Form2.ShowModal;

[3, 8]

 

 

Редагування правил

 

 

В процесі навчання учням необхідно під рукою мати правила дорожнього руху встановленого зразка на певний момент часу. Коректування в правила вносяться періодично і що б їх враховувати (вчасно вносити зміни) необхідно мати свій електронний підручник. Для цього за допомогою двох таблиць організовуємо зберігання глав і параграфів ПДР в електронному вигляді.

Організовуємо зв’язок між таблицями за принципом один до багатьох. Головною буде таблиця глав, підлеглої таблиця параграфів. Як поле сортування параграфів організовуємо спеціальне поле nomer в таблиці tema_paragraf. Для зберігання великих об’ємів текстових даних використовуємо тип поля MEMO. Вельми специфічний тип даних, оскільки дозволяє зберігати текстову інформацію практично в необмеженому об’ємі.

Для управління процесом додавання, видалення, редагування даних додамо відповідні кнопки в тіло процедур яких, додамо відповідні команди:

Додавання нової теми:

Temy.Insert;

DBGrid1.SelectedField.FocusControl;

Де Temy – Query (запит).

 

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

If MessageDlg(‘Видалити запис? ’, mtConfirmation, [mbYes, mbNo], 0)=6 then

Temy.Delete;

На рис. 3.5 показаний зовнішній вигляд форми для редагування правил дорожнього руху. Переміщення по розділах здійснюється по номерах розділів.

 

Рис. 3.5 Зовнішній вигляд форми для редагування ПДР.

 

Жодна повноцінна програма у наш час не обходиться без звітів, і результатів роботи програми. Найзручнішим інструментом для друку є

програми Word і Excel. Перша призначена для друку текстових документів, друга потрібна для роботи з таблицями даних. Delphi володіє технологією OLE, яка дозволяє підключатися до цих програм, вивантажувати в них дані і віддавати команди.

Розглянемо як виглядає експорт даних та виведемо у Word зміст правил:

VAR Word: Variant; // Змінна типу варіант

i, j: integer;

begin

   try // Конструкція Try … Except для коментування виключень

   Word: = CreateOleObject(‘Word.Application’);

   Except

   Raise Exception. Create (‘Не можу запустити Word’);

   End;

try

Word.Documents.Add; // Додати новий документ у Word

Word.Selection.Font.Bold: = True; // Встановити жирний шрифт  

Word.Selection.Font.Size: = 16; // встановити 16 кегль

Word.Selection.TypeText(‘Правила дорожнього руху’+#10+#10);

for i: =1 to temy.RecordCount do

begin

  Word.Selection.Font.Bold: = True; // Встановити жирний шрифт

  Word.Selection.Font.Size: = 13; // встановити 13 кегль

  Word.Selection.TypeText(temytema_name.AsString);

  Word.Selection.TypeText(#10+#10);

for j: =1 to paragraf.RecordCount do

begin

  Word.Selection.Font.Bold: = false; // Встановити жирний шрифт

  Word.Selection.Font.Size: = 12; // встановити 12 кегль

  Word.Selection.TypeText(paragraftext.AsString);

  Word.Selection.TypeText(#10+#10);

paragraf.Next

end;

temy.Next;

end;

Word.Visible: = True; // Показати програму Word

finally

Word: =UnAssigned;

end;

 

Результат роботи програми можна побачити на рис. 3.6.

 

Рис 3.6. Експорт даних в Microsoft Word. [7, 9]

Редагування білетів

З метою мінімізувати кількість форм, на яких буде розміщено редагування екзаменаційних квитків, постараємося розмістити всі компоненти на одній формі. Це дозволить уникнути помилок передачі даних між формами і буде більш наочне.

На формі розташуємо три запити, з яких поступають дані. Провідна таблиця «billet » забезпечує перелік квитків для іспиту в такому порядку Бiлет1, Бiлет2, … БiлетN, друга, підлегла цій таблиці таблиця «vopros » містить набір питань, що містяться в квитку. Перелік відповідей на кожне питання міститься в таблиці «otvet ». Виходить послідовність з трьох підлеглих по порядку один одному таблиць (рис 2.5.).

Для того, щоб організувати взаємозв’язок двох таблиць необхідно в джерелі даних вказати в DataSource ім’я таблиці, з якої як з ведучої ми зможемо одержати дані. Ці дані можна вказати в запиті через символ «: ».

SELECT id_voprosa, id_bileta, nomer, vopros, image

FROM bilet_vopros

WHERE id_bileta =: id_bileta

ORDER BY nomer;

Id_bileta – це поле по якому організований взаємозв’язок між таблицями bilet і vopros. Це ключове поле в таблиці bilet, і поле цілочисельного типу в таблиці vopros. Таким чином, організований взаємозв’язок один до багатьох. У таблиці bilet з кодом 12 один запис, а в таблиці vopros їх може бути до 20 (по кількості питань).

Перерахуємо всі компоненти розташовані на формі для редагування екзаменаційних квитків:

- ADOQuery – Запит;

- DataSource – Джерело даних;

- DBGrid – Таблиця представлення даних;

- GroupBox – Контейнер для угрупування компонентів;

- DBControlGrid – Контейнер таблиці даних;

- Image – Контейнер для рисунка завдання;

- BitBtn – Кнопка із зображенням;

- Button – Кнопка;

- DBMemo – контейнер для МЕМО-поля;

- Label – Текстова мітка;

- OpenPictureDialog – діалог відкриття файлу.

На рис. 3.7 показани компоненти форми для редагування екзаменаційних білетів. Екзаменаційні питання, як і відповіді до них – великі об'єми текстової інформації. Для зберігання великих текстових масивів мені знадобляться Memo поля. Їх вміст можна побачити за допомогою одного компоненту, він називається DBMemo. Для редагування одного питання його підключаємо до поля vopros запиту Query через DataSource. Результат – він відображає текстовий вміст одного запису. Але як бути якщо мені потрібно відобразити текстові контейнера у вигляді таблиці?

Може допомогти компонент, який називається DBCtrlGrid. Це фактично компонент конструювання таблиць, де вид відображення рядка даних може мінятися.

 

Рис. 3.7 Компоненти форми для редагування екзаменаційних білетів.

 

Наприклад, на рис. 3.8 легко бачити, що один запис таблиці міститиме як DBMemo компонент, так і компонент DBCheckBox.  

 

Рис. 3.8 Редагування поля даних.

 

Таким чином, в одному рядку можна розташувати і інші компоненти, такі як DBEdit і інші. [15]

 

 

Додавання зображень

Окремо розглянемо додавання зображень. Серед наборів компонентів Delphi є компонент Image. Його як контейнер використовуватимемо для зберігання графічних даних. На рис. 3.9 показано вікно додавання зображень. Для роботи із зображеннями додамо наступні кнопки: Додати зображення, Видалити зображення.

Для зручності пропоную використовувати найпоширеніший формат файлів – JPG. Цей формат зручний з ряду причин: файл часто хорошої якості і добре стислий, він підтримується всіма WEB – браузерами.

Розмір файлів повинен бути обмежений і не перевищувати 600х200 пікселів. [4]

 

Рис 3.9. Вікно додавання зображень

 

Список учнів

Список учнів автошколи складається з двох частин. Перша частина – це «групи», друга – «учні». Оскільки провідна таблиця у нас – групи, в їх складі вчаться студенти, то одного запису в таблиці група відповідатимуть декілька записів про учнів в цій групі. Для редагування груп нам потрібні стандартні операції роботи з даними. Перерахуємо їх:

- додавання;

- видалення;

- редагування;

- збереження;

- відміна редагування.

На рис. 3.10 показаний зовнішній вигляд лівої сторони форми для редагування учнів. Сортування здійснюється у зворотному напрямі по стовпцю «рік початку навчання». Зроблено це для того, щоб групи поточного року навчання постійно знаходилися попереду і не було необхідності постійно прокручувати список в кінець. Реалізується це за допомогою запиту з приставкою DESC (descending) по спаданню:

SELECT id_gruppa, god_nachala_obucheniya, name_gruppy, fio_prepodavatelya

FROM gruppa

ORDER BY god_nachala_obucheniya desc;

 

 

Рис. 3.10 Редагування груп студентів.

 

Тепер додамо нову групу. Після натиснення кнопки з’явиться новий рядок, зліва від якої є символ «*». На рис. 3.11 показан перехід в режим редагування.

 

Рис 3.11. Перехід в режим редагування

 

Зараз можна переходити до редагування текстових даних. Деякі кнопки відключені не випадково. Існує два стани: редагування даних і режим перегляду даних. У різних режимах недопустимі певні операції. Так при редагуванні не можна додавати новий запис, тому що це приведе до збереження редагованого запису; видаляти при редагуванні теж не варто, - це викличе помилку. 

Права частина форми призначена для редагування студентів.
На рис. 3.12 показаний список учнів однієї групи 206-т:

 

Рис. 3.12 Список студентів

 

Ми спеціально залишили два перші стовпчики для наочного відображення взаємозв’язку таблиць груп і учнів. Код учня – це код конкретного учня, а id_gruppa – це код групи 206-т (у нашому випадку він рівний 3). [18]

 

 


Поделиться:



Последнее изменение этой страницы: 2019-04-09; Просмотров: 270; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.049 с.)
Главная | Случайная страница | Обратная связь