- •Содержание
- •Глава I. Теоретические основы применения технологии ado в среде Delphi 4
- •Глава II. Разработка фрагмента информационной системы «Аптека» в среде Delphi с применением технологии ado. 12
- •Введение
- •Глава I. Теоретические основы применения технологии ado в среде Delphi
- •1.1. Основные понятия и определения теории баз данных
- •Субд как посредник между пользователем и базой данных
- •Защита логической целостности базы данных.
- •Компоненты Delphi для создания приложений, оперирующих с базами данных
- •Глава II. Разработка фрагмента информационной системы «Аптека» в среде Delphi с применением технологии ado.
- •2.1. Анализ предметной области
- •2.2. Общий вид и особенности работы приложения Разработка базы данных «Аптека»
- •Процесс разработки пользовательского интерфейса приложения
- •2.2.4. Подключение базы данных «Аптека» к приложению
- •Особенности программного кода
- •Заключение
- •Литература
- •Приложение. Листинг программного кода фрагмента информационной системы «Аптека»
2.2.4. Подключение базы данных «Аптека» к приложению
Для того чтобы подключить к нашему приложению и отобразить таблицы базы данных, на форме были размещены следующие компоненты: ADOConnection, DataSource и ADOTable - они не будут видны при запуске приложения. На рисунке 17 показано расположение компонентов на форме.
Рис. 17. Расположение невизуальных компонентов на форме
Компонент ADOConnection (в нашем случае ему присвоено имя apteka_ADOConnection) позволяет очень легко связать базу данных с нашим приложением. Для этого нужно в свойстве ConnectionString создать строку подключения. Программисту доступен удобный мастер по созданию этой строки:
Выбираем свойство ConnectionString, кликаем по кнопке редактирования (рис. 18).
Рис. 18. Свойство ConnectionString компонента ADOConnection
В появившейся форме мастера командной строки нажимаем на кнопку «Build…» (рис. 19).
Рис. 19. Мастер командной строки
Выбираем поставщика данных “Microsoft Jet 4.0 OLE DB Provider” для базы данных MS Access и щелкаем кнопку «Далее» (рис. 20).
Аналогичным образом к Delphi подключаются другие БД. Например, для подключения базы данных SQL сервера используется поставщик данных “Microsoft OLE DB Provider for SQL server”
Рис. 20. Вкладка «Поставщик данных»
Теперь нужно выбрать нужную нам базу данных (если она сделана в MS Access, то должна иметь расширение *.mdb) и проверить соединение данных (рис. 21).
Рис. 21. Вкладка «Соединение»
Нажимаем на ОК, строка доступа сгенерирована.
В свойстве Connected компонента ADOConnection должно стоять True. Это свидетельствует о том, что база данных подключена.
На форме было размещено 3 невизуальных компонента DataSource
( ), отвечающих за каждую таблицу. Через свойство источника данных – DataSet – они были связаны с соответствующими компонентами ADOTable.
У каждого компонента ADOTable необходимо изменить следующие свойства:
Connection := apteka_ADOConnection;
TableName := ’Поставщики’ или ‘Товары’ или ‘Персонал’ (в зависимости от нужной таблицы);
Active := True.
Для того чтобы таблицы выводились на соответствующие компоненты DBGrid, необходимо и для них установить источник данных в свойстве DataSource – это один из трех компонентов DataSource. Таким же образом необходимо связать и компоненты DBNavigator.
Ниже на рис. 22 можно увидеть схему связи данных и компонентов технологии ADO.
Рис. 22. Схема связи данных и компонентов технологии ADO
Особенности программного кода
В связи с тем, что технология ADO инкапсулирует все процедуры, нет необходимости в объемном программном коде, поэтому все особенности кода заключаются лишь в организации удобства интерфейса приложения: подготовка программы к работе и функционирование кнопки «Редактировать».
procedure Tapteka_form.FormActivate(Sender: TObject);
begin
i1:=0;
i2:=0;
i3:=0;
tovar_dbedit1.Enabled:=false;
tovar_dbedit2.Enabled:=false;
tovar_dbedit3.Enabled:=false;
tovar_dbedit4.Enabled:=false;
tovar_dbedit5.Enabled:=false;
tovar_dbmemo1.Enabled:=false;
tovar_dbmemo2.Enabled:=false;
postav_dbedit1.Enabled:=false;
postav_dbedit2.Enabled:=false;
postav_dbedit3.Enabled:=false;
postav_dbedit4.Enabled:=false;
postav_dbmemo1.Enabled:=false;
personal_dbedit1.Enabled:=false;
personal_dbedit2.Enabled:=false;
personal_dbedit3.Enabled:=false;
personal_dbedit4.Enabled:=false;
personal_dbedit5.Enabled:=false;
personal_dbedit6.Enabled:=false;
personal_dbedit7.Enabled:=false;
personal_dbedit8.Enabled:=false;
personal_dbedit9.Enabled:=false;
personal_dbedit10.Enabled:=false;
personal_dbmemo1.Enabled:=false;
end;
При активации приложения формируются начальные значения переменных и всем компонентам для работы с текстом присваивается значение False в свойстве Enabled во избежание случайного (непреднамеренного) редактирования записей базы данных.
Далее при работе нажатии кнопки «Редактировать» все поля на конкретной вкладке становятся активными и кнопка меняет название на «Принять».
Для того, чтобы не добавлять много кнопок на форму, используется конструкция if…then…else, где функциональную роль исполняют переменные i1, i2, i3. Это позволяет, меняя названия у одной кнопки, варьировать ее назначение.
procedure Tapteka_form.tovar_Button1Click(Sender: TObject);
begin
if i1=0
then
begin
tovar_dbedit1.Enabled:=true;
tovar_dbedit2.Enabled:=true;
tovar_dbedit3.Enabled:=true;
tovar_dbedit4.Enabled:=true;
tovar_dbedit5.Enabled:=true;
tovar_dbmemo1.Enabled:=true;
tovar_dbmemo2.Enabled:=true;
tovar_button1.Caption:='Принять';
i1:=1;
end
else
begin
tovar_dbedit1.Enabled:=false;
tovar_dbedit2.Enabled:=false;
tovar_dbedit3.Enabled:=false;
tovar_dbedit4.Enabled:=false;
tovar_dbedit5.Enabled:=false;
tovar_dbmemo1.Enabled:=false;
tovar_dbmemo2.Enabled:=false;
tovar_button1.Caption:='Редактировать';
i1:=0;
end;
end;
Аналогичным методом описываем событие OnClick для оставшихся кнопок с вкладок «Поставщики» и «Персонал»