Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000555.doc
Скачиваний:
31
Добавлен:
30.04.2022
Размер:
19.12 Mб
Скачать

8. Управление базами данных

8.1. Приложение для управления базами данных

Составим приложение (программу), которое будет управлять из Delphi созданной базой данных MS Access 2007 в формате Access 2003 по технологии ADO, в нашем случае с базой данных Обучение

Программа управления базой данных может содержать несколько окон и соответственно модулей.

Вначале создадим основную форму для этого приложения, которую назовем Главной (MainForm), а модуль, в котором она сохранена, – MainUnit.

Затем создадим специальную форму для хранения компонентов ADO

Для этого выберем команды - меню File | New | Data Module - и этим заставим Delphi создать отдельное окно формы DataModule, которое удобно подходит для хранения компонентов доступа к базам данных (рис. 8.1).

Рис. 8.1

Сохраним это окно в модуле DataModuleUnit.

Для начала с вкладки dbGo палитры инструментов Delphi 2009 поместим на форму Data Module специального модуля DataModuleUnit компонент ADOConnection.

Теперь установим связь Главной формы с окном Data Module, содержащим компонент ADOConnection.

Для этого откроем главную форму (MainForm).

Из меню File выберем пункт Use Unit, в этот момент Главное окно должно быть открыто (выделено).

В появившемся окне нужно выбрать имя модуля DataModuleUnit и нажать кнопку OK.

Теперь нужно проверить, чтобы в редакторе кода Главной формы (MainForm) после ключевого слова implementation появилась запись — uses DataModuieUnit.

Эту запись в редакторе кода Главной формы (MainForm)можно сделать и вручную.

Далее настроим соединение c сервером, которое должно быть указано в свойстве ConnectionString компонента ADOConnection.

Однако задавать свойство ConnectionString путем прямого указания требуемых параметров в строке соединения ConnectionString не очень удобно

Для этой цели обычно используется редактор (мастер) параметров соединения, который может быть вызван двойным щелчком по компоненту ADOConnection или щелчком по кнопке в поле справа от свойства ConnectionString в Инспекторе объектов.

В результате этих действий откроется окно редактора ADOConnection 1 ConnectionString (см. раздел 7.2, рис. 7.1).

В этом окне нужно выполнить одно из следующих действий:

  • использовать специальный файл (Use Data Link File),

  • использовать ручную настройку строки подключения (Use Connection String),

  • использовать мастер для создания строки подключения.

Остановимся на последнем варианте.

Чтобы запустить мастер, щелкнем мышью по кнопке Build окна ADOConnection 1 ConnectionString (см. раздел 7.2, рис. 7.1)..

Перед нами откроется окно Свойства связи с данными с четырьмя вкладками.

На вкладке Поставщик данных (Provider) (см. раздел 7.2, рис. 7.2) перечислены все возможные для ADO драйвера доступа к базам данных..

Согласно сказанному ранее, выбираем драйвер Microsoft Jet 4.0 OLE DB Provider (см. раздел 7.2, рис. 7.2).

После этого, нажав кнопку Далее (Next), переходим на вкладку Подключение (Connection) (см. раздел 7.2, рис. 7.3).

На вкладке Подключение в первую очередь заполним следующие поля.

  • Пользователь (User name). Значение поля можно оставить по умолчанию, если не задано иное при создании базы в MS Access.

  • Пароль (Password). Если база имеет пароль, то его необходимо указать.

  • Пустой пароль (Blank password). Если пароль не нужен, то здесь желательно поставить флажок.

  • Разрешить сохранение пароля (Allow saving password). Если здесь поставить флажок, то пароль может быть сохранен. Если нет, то при каждом запуске программы будет появляться окно с просьбой ввести пароль.

Далее выбираем файл базы данных.

Чтобы легче было выбрать файл базы данных(см. раздел 7.2, рис. 7.1)., необходимо щелкнуть мышью по кнопке с точками .. справа от строки ввода. Появится окно Выберите базу данных. (далее см раздел 7.2).

Если база данных будет располагаться в той же папке, что и исполняемый файл приложения, то путь указывать не обязательно.

Если хотите держать файлы в другом каталоге, то указывайте относительный путь (относительно текущего каталога)

После выбора базы данных, нужно нажать на кнопку Проверьте подключение (Test Connection), чтобы протестировать соединение. Если все сделано правильно, то должно появиться сообщение Test connection succeeded (Тестирование соединения прошло удачно).

Теперь нужно нажать ОК, чтобы закрыть окно создания строки подключения. Затем еще раз нажать ОК, чтобы закрыть окно редактора строки подключения.

Затем в свойствах компонента ADOConnection отключим свойство LoginPrompt, выставив его в false.

Это нужно для того, чтобы при каждом обращении к базе не происходил вызов пароля, если никаких паролей не назначалось.

Далее выставим свойство Connected в true, чтобы произошло соединение с базой.

Свойству Connected можно непосредственно в программе присвоить значение true перед обращением к базе данных.

После этих действий соединение с базой данных будет выполнено.

Теперь получим доступ к таблице Список созданной базы данных Обучение.

Для этого поместим в окно специального модуля DataModuleUnit компонент ADOTable с вкладки dbGo палитры инструментов Delphi 2009.

Чтобы компонент ADOTable был похож на созданную таблицу Список, изменим его имя, т.е. изменим его свойство Name на SpisokТаblе.

Вообще говоря, в этом компоненте тоже есть свойство ConnectionString и его также можно настраивать. Но для того, чтобы этого не делать, используем установленный на форме компонент ADOConnection.

Для этого у компонента SpisokТаblе в свойстве Connection указываем созданный нами компонент соединения с базой данных, т.е. вместо заполнения свойства ConnectionString щелкаем по ниспадающему списку в свойстве Connection и выбираем пункт ADOConnection1.

В свойстве TableName задаем имя нашей таблицы (Список).

Аналогично, для получения доступа ко второй таблице Оценки, помещаем в окно специального модуля DataModuleUnit еще один компонент ADOTable с вкладки dbGo палитры инструментов Delphi 2009и также изменяем его имя, т.е. изменяем его свойство Name на OcenkaТаblе.

Далее у нашего компонента OcenkaТаblе в свойстве Connection указываем созданный нами компонент соединения с базой данных. Для этого также щелкаем по ниспадающему списку, и в свойстве Connection выбираем пункт ADOConnection1.

В свойстве TableName задаем имя нашей таблицы Оценки.

Итак, Таблицы созданы, и соединение с ними выполнено. Теперь можно подключаться.

Для этого в инспекторе объектов для компонентов SpisokТаblе и OcenkaТаblе выставим свойства Active в true или сделаем это в программе перед обращением к таблицам базы данных.

Для отображения данных из таблиц поместим в окно специального модуля DataModuleUnit два компонента DataSource с вкладки Data Access палитры инструментов.

Чтобы различать эти компоненты, изменим их имена, т.е. изменим их свойства Name соответственно на SpisokSource и OcenkaSource.

Этим компонентам надо указать, какую именно таблицу каждый из них должен отображать.

Для этого в свойстве DataSet каждого компонента нужно из ниспадающего списка выбрать соответственно компонент SpisokTable или OcenkaTable, который связан с нужной таблицей.

Теперь можно приступать к реальному отображению данных.

Самый простой способ отобразить первую таблицу Список – это установить на Главной форме (Main Form) компонент DBGrid.

Компонент DBGrid — это сетка, которая может отображать данные в виде таблицы. В этом же компоненте можно добавлять, удалять и редактировать строки нашей таблицы.

Следующий этап создания приложения — это связывание компонента сетки с компонентом отображения таблицы Список.

Для этого в свойстве DataSource компонента DBGrid нужно указать созданный нами компонент SpisokSource., данные которого должны быть отображены в сетке (DataModule.SpisokSource).

Для отображения таблицы Оценки с помощью команд File|New|Form создаем новую форму Form3, которую сохраняем в модуле Unit3.

На форму Form3 устанавливаем компонент DBGrid и связываем компонент сетки с компонентом отображения таблицы Оценки.

А именно, для этого в свойстве DataSource компонента DBGrid устанавливаем созданный нами компонент OcenkaSource, данные которого должны быть отображены в сетке (DataModule. OcenkaSource).

Для закрытия формы Form3 и перехода к Главной форме устанавливаем на Form3 компонент TButton с надписью Закрыть и пишем для него следующий обработчик события:

Close;

Form1.Show

Окно формы Data Module с установленными на нем всеми компонентами, включая и компоненты поиска информации, изображено на рис. 8.2

Рис.8.2

Далее возвращаемся в Главную форму, на которой для отображения таблицы Оценки устанавливаем компонент TButton c надписью Показать табл. 2, при нажатии на который будет показана вторая таблица Оценки

Для компонента TButton создаем следующий обработчик события:

DataModule1.OcenkaTable.Active:=true;

Form3.Show;

Итак, приложение для работы с базами данных создано.

Теперь научим приложение обрабатывать и выдавать нужную информацию.