Автор: Пользователь скрыл имя, 23 Декабря 2011 в 19:25, реферат
С точки зрения пользователей, база данных Delphi – это программа, которая обеспечивает работу с информацией, в нашем случае - с информацией в электронном виде. При работе с такой программой, которая как правило выдаёт на экране монитора таблицу, пользователь просматривая её может найти интересующую его информацию. Если программа, база данных Delphi, позволяет, то он может внести изменения или дополнить новую информацию, а так же удалить ненужную.
С точки зрения программиста, база данных Delphi - это набор файлов, содержащих информацию.
В качестве примера
использование компонентов DBEd
Форма приложения «просмотр базы данных в режиме формы», создаётся следующим образом. Сначала на пустую форму надо добавить компоненты Table и DataSource и установить значение их свойств. Значение свойств нужно устанавливать в том порядке, как они идут в таблице
|
После настройки компонента Table и DataSource в форму нужно добавить ещё три компонента DBEdit и компонент DBMemo . Компоненты DBEdit предназначены для просмотра и редактирования полей Name, Architect и Photo, компонент DBMemo – для просмотра и редактирования поля Note. Значение свойств компонентов просмотра и редактирования полей базы данных приведены в таблице.
|
Так как значению
свойства
Active компонента Table1
присвоено значение True, то сразу после того,
как будет присвоено значение свойству
DataField, в поле компонента DBEdit появится
содержимое соответствующего поля первой
записи таблицы базы данных. Если таблица
не содержит данных , то поле остаётся
незаполеным. Если значение свойства Active
компонента Table1 равно False, то то в поле
компонента DBEdit появляется его имя , значение
свойства Name.
Кроме компонентов просмотра – редактирования
полей базы данных, в форму можно добавить
компонент Image, который используется для
просмотра иллюстраций, и четыре компонента
Label для вывода пояснительного текста.
Свойству Visible компонентов Image, Label4 и DBEdit3 следует присвоить
значение False.
Теперь, если откомпилировать и запустить
программу, на экране появится форма, в
полях которой будет находится содержимое
первой записи файла данных.
Для того чтобы просматривать другие записи
файла данных, в форму нужно добавить компонент DBNavigator, Значок которого находится
на вкладке Data
Controls (cм. Рис.).
Компонент
DBNavigator (см. рис)
представляет собой набор кнопок, при
щелчках на которых происходит перемещение
указателя текущей записи к следующей,
предыдущей, первой и последней записи
базы данных, а так же добавление к файлу
данных новой записи, удаление текущей
записи.
Свойства компонента
DBNavigator приведены
в таблице ниже:
|
Следует обратить
внимание на свойство VisibleButtons. Оно позволяет
скрыть некоторые кнопки компонента DBNavigator тем самым запретить
выполнение соотвествующих операций над
файлами данных. Например, присвоив значение
False свойству VisibleButtons.nbDelete можно скрыть
кнопку nbDelete и тем самым запретить удаление
записей. Свойству DataSource Компонента DBNavigator1
следует присвоить значение Table1.
В принципе, после добавления компонента DBNavigator простейшая программа
управления базой данных готова. Эта программа
обеспечивает просмотр, редактирование,
добавление новых и удаление ненужных
записей.
Теперь рассмотрим, что нужно сделать,
чтобы в поле Image появилось изображение
памятника, информация о котором выведена
в форме. Разрабатываемое приложение предполагает,
что изображения архитектурных памятников
находятся в том же каталоге, что и таблица
базы данных. Во время добавления информации
в базу данных пользователь вводит в поле
Photo имя файла фотографии, а во время просмотра
фотография автоматически появляется
в поле Image1.
исходник базы данных
Ниже приведён
исходник базы данных:
unit UnitPiter;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, DB, DBTables, ExtCtrls, StdCtrls, DBCtrls, Mask,jpeg;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Table1: TTable;
DataSource1: TDataSource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBMemo1: TDBMemo;
DBEdit3: TDBEdit;
Image1: TImage;
DBNavigator1: TDBNavigator;
procedure
Table1AfterScroll(DataSet: TDataSet);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure Table1BeforeOpen(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
BmpPath:string;
implementation
{$R *.dfm}
procedure showFoto(foto:
string);
begin
try
Form1.Image1.Picture.
Form1.Image1.Visible:= True;
except
on EFOpenError do
begin
MessageDlg('файл иллюстрации '+foto+' не найден.',
mtInformation,
[mbOk], 0);
end;
end;
end;
procedure TForm1.Table1AfterScroll(
begin
if form1.DBEdit3.Visible then
begin
form1.DBEdit3.Visible :=False;
form1.Label5.Visible:=False;
end;
if Form1.DBEdit3.Text <> ''
then ShowFoto(Form1.DBEdit3.Text)
else form1.Image1.Visible:=False;
end;
procedure TForm1.DBEdit3KeyPress(Sender:
TObject; var Key: Char);
begin
if (key = #13) then
if Form1.DBEdit3.Text <> ''
then ShowFoto(Form1.DBEdit3.Text)
else form1.Image1.Visible:=False;
end;
procedure TForm1.DBNavigator1Click(
begin
case Button of
nbInsert: begin
Image1.Visible:= False;
DBEdit3.Visible:=True;
Label5.Visible:=True;
end;
end;
end;
procedure TForm1.Table1BeforeOpen(
begin
BmpPath:=ExtractFilePath (ParamStr(0))+'data\';
end;
end.
Вызов процедуры вывода фотографии (showFoto)
во время просмотра
базы данных выполняет
процедура TForm1.Table1AfterScroll, которая обеспечивает
обработку события AfterScroll для компонента
Table1. Событие AfterScroll происходит всякий
раз после перехода к другой записи таблицы
как результат щелчка пользователя на
соответствующей кнопке компонента DBNavigator
. Процедура TForm1.Table1AfterScroll анализирует
содержимое поля (Photo ) Form1.DBEdit3.Text и, если
оно не пустое, что свидетельствует о наличии
ссылки на файл фотографии, выводит иллюстрацию.
При просмотре базы данных поле имени
файла иллюстрации (DBEdit3) и его заголовок
(Label4) на форме не отображаются. Если пользователь
нажимает одну из кнопок компонента DBNavigator
, то как результат обработки события OnClick
вызывается процедура TForm1.DBNavigator1Click, которая
при щелчке на кнопке добавить или редактировать
делает доступным поле DBdit3,тем самым позволяя
пользователю ввести и ли изменить имя
файла иллюстрации.
Процедура TForm1.DBEdit3KeyPress обрабатывает событие
On KeyPress для компонента DBEdit3. Если пользователь
ввёл в поле Edit3(Photo) имя файла иллюстрации
и нажал клавишу “Enter”, то процедура TForm1.DBEdit3KeyPress
выводит иллюстрацию путём вызова прцедуры
showFoto.
Создание базы данных в Delphi.
В комплекте Delphi 7 входит сразу несколько
библиотек для работы с базами данных
(ADO, BDE, dbExpress, InterBase и др.). Для того чтобы
создать приложение, работающее с локальной
базой данных, обычно используется библиотека
BDE. Но без определённой подготовки операционной
системы эти компоненты работать не будут.
Смотри создание базы данных с помощью
BDE.
Но Delphi существует альтернатива этим компонентам
– это автономный компонент TClientDataSet
который использует свой собственный
формат данных.
Компонент TClientDataSet использует файлы
с расширением *.CDS и *.XML мы будем сейчас
рассматривать формат CDS, так как XML формат
занимает вдвое больше места на диске
кроме этого такой файл легко можно изменить,
открыв его через блокнот. Этот компонент
при создании проецирует файл в память
и модифицирует только память, а при уничтожении
данные записываются в файл целиком. Путь
к файлу базы данных
в Delphi без сторонних БД
определяет свойство FileName. Файлы формата
CDS можно найти в папке program files\Common Files\Borland
Shared\Data.
Для работы базы данных добавляем на форму четыре компонента для приложения базы данных в Delphi без сторонних БД (см. ниже):
|
Устанавливаем свойства добавленных компонентов (см. табл.):
|
Примечание. Не забудьте установить
ClientDataSet1.Active = True, так как данные базы не
будут отображаться (выводится).
Далее создаём таблицу базы
данных в Delphi без сторонних БД
Рассмотрим всё по шагам:
Шаг1. Создаём
новый проект и добавляем на форму
компонент TClientDataSet.
Шаг2. Определяем структуру таблицы. Для
этого открываем свойство FieldDefs
нашего компонента, после чего открывается
окно "Editing ClientDataSet1.FieldDefs" нажимаем
"добавить новый", и определяем свойства
поля таблицы (тип, формат, размер и т.д.).Поля
нужно вводить на английском языке, например:
имя- Name и т.д.
Шаг3. Теперь самый ответственный момент, именно. щёлкаем правой кнопкой мыши на компоненте TClientDataSet и выбираем пункт CreateDataSet. Далее ещё раз открываем контекстное меню и выбираем пункт "Save to binary MyBase file" и сохраняем файл туда, где нажодится наш проект.
Всё готово теперь у нас есть файл
CDS.(Для
создания полноценного
приложения вам осталось
добавить несколько
записей).