База данных в Delphi

Автор: Пользователь скрыл имя, 23 Декабря 2011 в 19:25, реферат

Описание работы

С точки зрения пользователей, база данных Delphi – это программа, которая обеспечивает работу с информацией, в нашем случае - с информацией в электронном виде. При работе с такой программой, которая как правило выдаёт на экране монитора таблицу, пользователь просматривая её может найти интересующую его информацию. Если программа, база данных Delphi, позволяет, то он может внести изменения или дополнить новую информацию, а так же удалить ненужную.
С точки зрения программиста, база данных Delphi - это набор файлов, содержащих информацию.

Работа содержит 1 файл

База данных в Delphi.doc

— 768.00 Кб (Скачать)
 

 

В качестве примера  использование компонентов DBEdit и DBMemo рассмотрим программу , «просмотр базы данных в режиме формы»,  которая  обеспечивает работу с базой данных «Архитектурные памятники Санк-Петербурга». Ниже приведена форма приложения с компонентами.

Форма  приложения  «просмотр базы данных в режиме формы»,  создаётся следующим образом. Сначала на пустую форму надо добавить компоненты Table и DataSource и установить значение их свойств. Значение свойств нужно устанавливать в том порядке, как они идут в таблице

Свойство Значение Комментарий
Table1.DatabaseName Peterburg Псевдоним базы данных(создаётся  
утилитой BDE Administrator
Table1.TableName monuments.db Таблица базы данных(создаётся  
утилитой Database Desktop
Table1.Active True -
DataSource1.Dataset Table1 -

После настройки  компонента Table и DataSource в форму нужно  добавить ещё три компонента DBEdit и компонент DBMemo . Компоненты DBEdit  предназначены для  просмотра и редактирования  полей Name, Architect  и  Photo, компонент DBMemo – для просмотра и редактирования поля Note. Значение свойств компонентов просмотра и редактирования полей базы данных приведены в таблице.

Свойство Компонент
DBEdit1 DBEdit2 DBEdit3 DBMemo1
DataSource DataSource1 DataSource1 DataSource1 DataSource1
DataField Monument Architect Photo Note

Так как значению свойства Active компонента Table1 присвоено значение True, то сразу после того, как будет присвоено значение свойству DataField, в поле компонента DBEdit  появится содержимое соответствующего поля первой записи таблицы базы данных. Если таблица не содержит данных , то поле остаётся незаполеным. Если значение свойства Active компонента Table1 равно False, то то в поле компонента DBEdit  появляется его имя , значение свойства Name. 
Кроме компонентов просмотра – редактирования полей базы данных, в форму можно добавить компонент Image, который используется для просмотра иллюстраций, и четыре компонента Label для вывода пояснительного текста. Свойству
Visible  компонентов Image, Label4  и DBEdit3 следует присвоить значение False.  
Теперь, если откомпилировать и запустить программу, на экране появится форма, в полях которой будет находится содержимое первой записи файла данных. 
Для того чтобы просматривать другие записи файла данных, в форму нужно добавить компонент
DBNavigator, Значок которого находится на вкладке Data Controls (cм. Рис.).

 
 
Компонент
 DBNavigator (см. рис) представляет собой набор кнопок, при  щелчках на которых происходит перемещение указателя текущей записи к следующей, предыдущей, первой и последней записи базы данных, а так же добавление к файлу данных новой записи, удаление текущей записи. 
 
 
 
 
Свойства компонента
DBNavigator приведены в таблице ниже:

Свойство Определяет
Name Имя компонента. Используется для доступа к свойствам компонента.
DataSource Имя компонента, являющегося источником данных. В  качестве  
источника данных может выступать база данных (компонент 
Databasa), таблица (компонент Table) или результат выполнения 
запроса (компонент Query)
VisibleButtons Видимые командные кнопки

Следует обратить внимание на свойство 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.LoadFromFile(BmpPath+foto); 
Form1.Image1.Visible:= True; 
except 
on EFOpenError do 
begin 
MessageDlg('файл иллюстрации  '+foto+' не найден.', mtInformation, 
[mbOk], 0); 
end; 
end; 
end; 
 

procedure TForm1.Table1AfterScroll(DataSet: TDataSet); 
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(Sender: TObject; Button: TNavigateBtn); 
begin 
case Button of 
nbInsert: begin 
Image1.Visible:= False; 
DBEdit3.Visible:=True; 
Label5.Visible:=True; 
end; 
end; 
end;

procedure TForm1.Table1BeforeOpen(DataSet: TDataSet); 
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 без сторонних БД (см. ниже):

Компонент Результат добавления
TClientDataSet ClientDataSet1
TDataSource DataSource1
TDBGrid DBGrid1
TDBNavigator DBNavigator1

 

Устанавливаем свойства добавленных компонентов (см. табл.):

Свойство Значение
DBNavigator1.DataSource DataSource1
DBGrid1.DataSource DataSource1
DataSource1.DataSet ClientDataSet1
ClientDataSet1.FileName test.cds'
ClientDataSet1.Active True

Примечание. Не забудьте установить ClientDataSet1.Active  = True, так как данные базы не будут отображаться (выводится). 
Далее создаём таблицу базы данных в Delphi без сторонних БД

 
Рассмотрим всё по шагам:

Шаг1. Создаём  новый проект и добавляем на форму компонент TClientDataSet.  
Шаг2. Определяем структуру таблицы. Для этого открываем свойство FieldDefs нашего компонента,   после чего открывается окно "Editing ClientDataSet1.FieldDefs" нажимаем  "добавить новый", и определяем свойства поля  таблицы (тип, формат, размер и т.д.).Поля нужно вводить на английском языке, например: имя- Name и т.д.

Шаг3. Теперь самый  ответственный момент, именно. щёлкаем  правой кнопкой мыши на компоненте TClientDataSet и выбираем пункт CreateDataSet. Далее ещё раз открываем контекстное меню и выбираем пункт "Save to binary MyBase file" и сохраняем файл туда, где нажодится наш проект.  

   

 
Всё готово теперь у нас есть файл CDS.(
Для создания полноценного приложения вам осталось добавить несколько записей).

Информация о работе База данных в Delphi