Тема. Взаимодействие Ms Access и Delphi. Возможности ADO компонентов.




Цели и задачи

 

Развивать умения по формированию целей и задач урока; изучить новые понятия; изучить свойства палитры компонентов ADO; научиться разрабатывать приложение, объединив ресурсы таблицы базы данных и инструментов языка программирования для разработки приложения «Телефонный справочник» на основе взаимодействия Access и Delphi;; содействовать творческому подходу к выполнению заданий; обеспечить усвоение выполнением задания на закрепление

 

ADO (от англ. ActiveX Data Objects — «объекты данных ActiveX») — интерфейс программирования приложений для доступа к данным, разработанный компанией Microsoft (MS Access) и основанный на технологии компонентов ActiveX. ADO позволяет представлять данные из разнообразных источников (реляционных баз данных, текстовых файлов и т. д.) в объектно-ориентированном виде.

SQL – структурированный язык запросов (structure query language). SQL - формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).

 

На прошлом уроке мы рассмотрели, как создать, заполнить таблицу в базе данных СУБД Access, рассмотрели, что такое формы, что такое запросы и отчеты. Сегодня мы продолжим изучать технологии работы с базами данных и создадим приложение «Телефонный справочник» с помощью таблицы Access и программы на языке программирования Delphi. Для того, чтобы начать создавать приложение, ответьте на вопросы.

 

Мозговой штурм

 

· Что такое форма, для чего она создается и каково ее предназначение в СУБД Access?

· Как выглядит, функционирует приложение для поиска информации (поисковая система, справочник)?

· Где хранится информация в подобных приложениях, откуда извлекается результат запроса?

· Какие изученные компоненты могут быть использованы для разработки программы «Справочник»?

· Какой функционал ПО можно использовать в большой таблице, если визуальный поиск невозможен?

 

1 ситуация - представьте, что мы имеем дело с большим объемом информации, справочником абонентов, количество которых достигает 150 000 человек. Конечно, для того чтобы пролистать подобную таблицу потребуется несколько часов, а то и дней. Как быть в данном случае, если нам надо срочно найти информацию, а стандартный функционал СУБД не дает такой возможности?

 

2 ситуация – необходимо вести учет книг, журналов, периодических изданий, их приход, расход и списание; вести учет читателей этих книг, их личные карточки и выдачу книг. Известно, что представляемая информация является связанными таблицами и при удалении записи книги из таблицы «Расход», эта же книга удалилась из списка книг читателя «Личные карточки читателей». Как это организованно?

3 ситуация – вы вводите данные в строку запроса поисковой системы в Internet. Введенный результат запроса, т.е. ответ сервера максимально совпадает с текстом, который вы ищете, и выдан в 1 строку результатов поиска, по следующим критериям: на найденной странице ключевые слова удовлетворяют поиску; запрашиваемый текст встречается максимально часто; большое количество переходов на эту страницу после подобных запросов; сайт является сервисом поисковой системы и предлагает свой функционал. Как организована работа поисковой системы, и максимально полезный уровень поиска если известно, что сервер поисковой системы не хранит у себя копии сайтов, а только лишь организует работу с информацией находящихся на них?

 

На уроке мы рассмотрим подробно 1 ситуацию, а именно разработаем приложение, в котором будет реализован поиск информации и для этого будут использованы уже известные нам элементы БД: процесс создания базы данных, таблицы БД и их сохранение, в том числе известные понятия SQL и ADO, которые нам помогут в разработке. Давайте повторим, как разработать новую БД и создать в ней таблицу?

 

Задание 1. Создать папку с именем «Data» на диске «С:/». Открыть СУБД Access, создать новую БД с именем и расширением: «bd.mdb» и сохранить ее в папке c именем «Data» на диске «С:/». Cоздать новую таблицу с именем table1. Создать в режиме конструктора поля в таблице table1: ФИО, Год_рождения, Адрес, Телефон. Сохранить таблицу. Открыть таблицу для редактирования. Заполнить таблицу 1 записью. Время – 5 мин.

 

 

Пример 1. Задание 2. Создание формы и программы приложения «Телефонный справочник» - 25 мин

1 шаг – создайте новый проект, сохраните проект в папку с именем «Data» на диске «С:/», в которой уже сохранена ваша база данных bd с вашей таблицей table1.

 

 

2 шаг - разместите на форме следующие компоненты: TPanel, TEdit, TComboBox и TButton на TPanel, c закладки компонентов Standart, TDBGrid c закладки компонентов DataControls, TDataSource c закладки компонентов DataAccess. С закладки компонентов ADO: TADOCoonection, TADOQuery, TADOTable.

 

3 шаг - измените свойства компонентов следующим образом, в соответствии с примером из таблицы

 

Название компонента Свойство компонента Значение свойства
TPanel Align alTop
Caption  
TEdit Text  
TButton Caption Найти
TComboBox Text Что будем искать?
  Items ФИО Год_рождения Адрес Телефон
DBGrid Align alClient
Сolumns [0] FieldName ФИО
Сolumns [1] FieldName Год_рождения
Сolumns [2] FieldName Адрес
Сolumns [3] FieldName Телефон
DataSource DataSource1
TDataSource DataSet AdoQuery1
TAdoConnection ConnectionString Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\bd.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False
LoginPromt False
TAdoTable ConnectionString Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\bd.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False
TableName table1
TAdoQuery Connection AdoConnection1

 

 

4 шаг – событие OnCreate компонента Form1. Напишите между begin и end в процедуре procedure TForm1.FormCreate(Sender: TObject); следующее

 

ADOQuery1.SQL.Clear; // очистка ранних запросов

ADOQuery1.SQL.Add(‘select * from table1’); // запрос на извлечение информации из таблицы

ADOQuery1.Active:=true;

 

Сохраните проект, скомпилируйте программу, запустите приложение. Опишите полученный результат.

 

 

5 шаг – Поиск в базе данных. Событие OnClick компонента Button1. Напишите между begin и end в процедуре procedure TForm1.Button1Click(Sender: TObject); следующее

 

ADOQuery1.Filtered:=true;

 

6 шаг – Событие OnСhange компонента Edit1. Напишите между begin и end в процедуре procedure TForm1.Edit1Change(Sender: TObject); следующее

 

if Length(Edit1.Text) > 0 then

begin

ADOQuery1.Filtered:=false;

ADOQuery1.Filter:=Combobox1.Text + ' LIKE ' + #39 + Edit1.Text + '%' + #39;

end

else ADOQuery1.Filtered:=false;

 

Сохраните проект, скомпилируйте программу, запустите приложение. Опишите полученный результат.

 

 

Пример и задание выполнено. На разработку программы, которая найдет запрашиваемую информацию, ушло не более 10 минут. Так, какую основную функцию несет разработка подобной программы? Так как мы работаем с данными из таблицы БД, которые можно добавлять и удалять, то давайте научимся, не открывая СУБД добавлять и удалять записи. Для чего может понадобиться данная возможность в подобных программах, например в 1С?

Пример 2. Задание 3. Добавление и удаление записей из БД на примере проекта «Телефонный справочник»

1 шаг – добавим в существующий проект еще 2 компонента TButton («Добавить», «Удалить»), а так же создадим новую форму Form2 со следующими компонентами и их свойствами. Сохраним проект

 

Название компонента Свойство компонента Значение свойства
TLabel1 Caption ФИО
TLabel2 Caption Год_рождения
TLabel3 Caption Адрес
TLabel4 Caption Телефон
TEdit1-TEdit4 Text  
TButton1 Caption Добавить

 

 

2 шаг – Удаление записи. Событие OnClick компонента Button3. Напишите между begin и end в процедуре procedure TForm1.Button3Click(Sender: TObject); следующее

 

try

if Application.MessageBox('Удалить запись из БД?','Сообщение БД',MB_YESNO)=IDYES //диалог

then begin

form1.ADOQuery1.Delete; // удаление записи указанной щелчком ЛКМ

end; except on e:Exception do end;

 

 

Сохраните проект, скомпилируйте программу, запустите приложение. Опишите полученный результат.

3 шаг – Связь первой и второй формы для ввода данных для добавления записи в таблицу БД. Событие OnClick компонента Button2. Напишите между begin и end в процедуре procedure TForm1.Button2Click(Sender: TObject); следующее

 

Form2.Show;

 

4 шаг – Добавление записи. Откройте вторую форму для редактирования программы. Событие OnClick компонента Button1 на Form2. Напишите между begin и end в процедуре procedure TForm1.Button1Click(Sender: TObject); следующее

 

try

if (Trim(form2.edit1.Text)='') or (Trim(form2.edit2.Text)='') or (Trim(form2.edit3.Text)='') or (Trim(form2.edit4.Text)='') then begin exit; // проверка на ввод данных

end;

form1.ADOQuery1.Insert; // оператор указывающий на ввод данных

form1.AdoQuery1.FieldByName('ФИО').AsString:=form2.Edit1.Text; // заполнение поля ФИО

form1.AdoQuery1.FieldByName('Год_рождения').AsString:=form2.Edit2.Text; // заполнение поля Год_..

form1.AdoQuery1.FieldByName('Адрес').AsString:=form2.Edit3.Text; // заполнение поля Адрес

form1.AdoQuery1.FieldByName('Телефон').AsString:=form2.Edit4.Text; // заполнение поля Телефон

form2.Edit1.Clear; // очистка памяти

form2.Edit2.Clear;

form2.Edit3.Clear;

form2.Edit4.Clear;

form1.AdoQuery1.Insert; // ввод данных

except // проверка на ошибки ввода данных

on e:Exception do

end;

form1.ADOQuery1.Insert;

end;

 

 

Сегодня мы разработали систему управления базой данных, т.е. приложение, с помощью которого можно извлекать информацию из таблицы, а так же производить удаление и добавление записей. Приведите еще примеры, где может быть использована данная возможность программного обеспечения? Выполните задание 4 самостоятельно.



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-04 Нарушение авторских прав и Нарушение персональных данных


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