Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_БД.doc
Скачиваний:
28
Добавлен:
04.05.2019
Размер:
4.03 Mб
Скачать
      1. Программа bde Administrator и модули данных.

Доступ к базе данных из Delphi осуществляется через процессор баз данных BDE (Boland Database Engine). BDE – это набор драйверов, которые обеспечивают доступ к данным в БД. Администратор BDE позволяет настраивать:

    1. параметры псевдонима БД (название, тип, путь),

    2. параметры драйвера (тип, язык),

    3. системные установки (установки по умолчанию, форматы даты, времени и числовые форматы).

Для настройки выбирается нужный объект, после этого в правой части окна открывается доступ к списку параметров этого объекта.

Добавить новый объект можно командой ObjectNew(Ctrl+N).

Удалить объект: выделить объект и выполнить ObjectDelete.

Текущее состояние объекта помечается значком:

  • зеленый треугольник – объект в режиме редактирования

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

  • красный треугольник – объект в режиме редактирования, некоторые изменения являются некорректными и не могут быть сохранены,

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

  • ярко-зеленый квадрат – объект открыт.

Псевдоним (alias) – специальное имя для обозначения каталога, в котором находятся файлы БД.

Для создания псевдонима нужно в BDE выполнить:

  1. выбрать вкладку Databases,

  2. выполнить команду ObjectNew,

  3. в появившемся окне New Database Alias (Новый псевдоним БД) выбрать тип драйвера: для Paradox и dBase это STANDARD и нажать Ok.

  4. Будет создан новый псевдоним STANDARD1.

Для работы с локальными БД псевдоним имеет три параметра (вкладка Definition):

  1. DEFAULT DRIVER – формат таблиц БД – для Paradox это STANDARD.

  2. ENABLE BCD – указывает на необходимость перевода чисел в формат BCD для более точного выполнения вычислений. По умолчанию FALSE.

  3. PATH – указывает расположение (каталог) БД. После создания псевдонима путь не определен, и его необходимо установить.

Например, для БД “Teachers” можно задать E:\Teachers. Псевдоним задать Teachers.

Схема взаимодействия между приложением (программой) и БД имеет вид:

Создадим в Delphi простое приложение для работы с таблицей Prepod из БД Teachers, которое обеспечит просмотр и редактирование полей, удаление и вставку новых записей. Для этого на форме разместим следующие компоненты.

Table1:TTables (вкладка BDE)не визуальный компонент, обеспечивает доступ к таблице БД, создает набор данных, который передает все данные из физической таблицы БД с помощью BDE.

Свойства:

DataBaseName:AnsiString- имя БД, выбирается из списка доступных псевдонимов. Например, Teachers.

TableName – имя физической таблицы БД, выбирается из списка имен всех основных таблиц выбранной БД. Например, Prepod.db;

Active: Booleanактивность таблицы: если Active=True набор данных находится в открытом состоянии; при Active=False – в закрытом. Значение Active=True устанавливается только после установки свойств DataBaseName и TableName.

Name: TStringимя компонента, например, TbPrepod;

DataSourse1:TDataSource (вкладка Data Access) – не визуальный компонент, источник данных для их отображения, является посредником между Table1 и визуальными компонентами.

Свойства:

DataSet : TDataSet - определяет от какого компонента TTable будут приняты данные для отображения, значение выбирается из списка. Например,

DataSource1.DataSet:=TbPrepod; // подключение к TbPrepod

Enable: Boolean - отображение данных. Например,

DataSource1.Enable:= False; // отключение отображения данных

DataSource1.Enable:= True; // подключение отображения данных

Name: TStringимя компонента, например, DsPrepod;

DBGrid1:TDBGrid (вкладка DataControls) – отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки – записям таблицы БД (как в электронной таблице).

Свойство:

DataSourse: TDataSourseимя источника набора данных для отображения на сетке. Выбирается из выпадающего списка или программно. Например,

DBGrid1.DataSourse:=DsPrepod;

DBNavigator: TDBNavigator (вкладка DataControls) – содержит кнопки для выполнения операций с набором данных (редактирование, добавление, удаление).

Свойства:

Flat: Boolean – управляет внешним видом навигатора. Flat=False – объемный вид кнопок, Flat=True – плоский вид кнопок.

DataSourse: TDataSourseимя источника набора данных. Например,

DBNavigator1.DataSource:=DsPrepod;

Взаимосвязь компонентов приложения и таблицы БД представлена на следующей схеме:

При разработке сложных приложений для работы с базами данных разделяют логику работы и пользовательский интерфейс. В Delphi используются модули данных – компоненты контейнеры типа TDataModule – невидимые формы, на которых размещают невизуальные компоненты (наборы данных, источники данных, провайдеры и другие элементы, которые осуществляют связь с базами данных).

Существует три типа модуля данных: простой модуль, удаленный модуль, Web-модуль.

Рассмотрим простой модуль данных. Для добавления простого модуля данных к проекту нужно в главном меню Delphi выполнить команду FileNewDataModule. В окне модуля компоненты размещаются также как и на форме.

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

Свойства

Name – имя модуля.

Tag – используется пользователем по своему усмотрению

События

OnCreate

OnDestroy

В обработчики этих событий помещают соответственно операторы соединения с базой данных и разрыва соединения. Например,

Table1.Active:=true;

Table1.Active:=false;

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

<Имя модуля данных>. <Имя компонента>

Например,

procedure TForm1.FormCreate(Sender: TObject);

begin

DataModule2.Table1.DatabaseName:='Teachers';

DataModule2.Table1.TableName:='prepod.db';

DataModule2.DataSource1.DataSet:=DataModule2.Table1;

DBGrid1.DataSource:=DataModule2.DataSource1;

DBNavigator1.DataSource:=DataModule2.DataSource1;

DataModule2.Table1.Active:=true;

end;

Причем файл проекта должен иметь вид:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {DataModule2: TDataModule};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TDataModule2, DataModule2);

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Чтобы обеспечить возможность доступа к компонентам модуля данных в модуле формы нужно в список uses раздела implementation включить ссылку на модуль данных, то есть

uses unit2;

В модуле данных можно размещать другие невизуальные компоненты, например, ImageList, OpenDialog, Timer.

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

Удаленный модуль данных предназначен для работы с удаленными БД в трехуровневой архитектуре “клиент-сервер”.

Web-модуль предназначен для работы с БД в сети Интернет и является посредником между браузером и сервером БД.