- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •IBplementation
- •Implementation
- •Часть 1
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •Interface
- •Часть 1 I. 104
- •Implementation
- •Implementation
- •Implementation
- •Часть I
- •Р ис. 1.46. Окно программы Звуки Windows
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Implementation
- •Interface
- •Часть 1
- •168 Част
- •Implementation
- •Часть 1
- •Interface uses
- •Implementation
- •Interface
- •Implementation
- •Часть 1
- •Часть 1 I Примеры и задачи
- •Часть 1 I Примеры и задачи
- •Implementation
- •205 Часть
- •Interface
- •Implementation
- •216 Часть 1
- •Поле т ип Размер Информация
- •Часть 1
- •Implementation
- •Interface
- •Implementation
- •Implementation
- •Часть 2 Таблица 2.2 (окончание)
- •252 Часть 2
- •Часть 2 I Delphi — краткий справочник
- •Часть 2
216 Часть 1
Базы данных Общие замечания
Приступая к решению задач этого раздела, необходимо вспом-1 нить:
Для того чтобы программа могла работать с базой данных, на компьютере должен быть установлен процессор баз данных щ Borland Database Engine (BDE). На компьютер программисте BDE устанавливается в процессе установки Delphi.
Создать базу данных (таблицу данных) и наполнить ее ин-| формацией можно при помощи утилиты Database Desktop, которая входит в состав Delphi.
Перед тем как приступить к созданию таблицы данных, надо! создать псевдоним (Alias) базы данных. Сделать это можно при помощи утилиты BDE Administrator или SQL ExploreB Обе эти утилиты входят в состав Delphi.
Для того чтобы перенести программу работы с базой данных на другой компьютер, надо создать установочный CD. Для решения этой задачи Borland рекомендует использовать упИ литу InstallShield Express, которая поставляется вместе ■ Delphi.
Примеры и задачи |
|
|
217 |
|
|
|
Таблица 1.1 (окончание) |
Поле |
Тип |
Размер |
Информация |
Note Photo |
А А |
255 12 |
Краткая историческая справка Файл иллюстрации |
Р
ис.
1.72. Окно программы работы с базой данных
"Архитектурные
памятники Санкт-Петербурга"
Для создания базы данных используйте утилиту Database Desktop, для создания псевдонима— SQL Explorer или BDE Administrator. Характеристики полей записей базы данных прит ведены в табл. 1.1, форма программы — на рис. 1.73.
Таблица 1.1. Поля записей базы данных "Архитектурные памятники Санкт-Петербурга" \
Поле т ип Размер Информация
M onument A 60 Название памятника
Architect A 40 Архитектор
Рис. 1.73. Форма программы работы с базой данных "Архитектурные памятники Санкт-Петербурга"
220
Часть 1
задачи
221
//
нажатие
клавиши в поле Фото
procedure TForml.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
if (key = #13) then
if Forml.DBEdit3.Text <> ''
then ShowFoto(Forml.DBEdit3.Text) // показать
// иллюстрацию \
else forml.Imagel.Visible:=False; end;
// щелчок на компоненте Навигатор
procedure TForml.DBNavigatorlClick(Sender: TObject;
Button: TNavigateBtn);
begin
case Button of
nblnsert: begin // добавить запись
Imagel.Visible:=False; // скрыть область
// вывода иллюстрации
DBEdit3.Visible:=True; // показать поле Фото Label4.Visible:=True; // показать метку Фото end; nbEdit: begin // редактирование записи
DBEdit3.Visible:=True; // показать поле Фото Label4.Visible:=True; // показать метку Фото end;
end;
end;
// перед тем, как открыть базу данных (таблицу) procedure TForml.TablelBeforeOpen(DataSet: TDataSet); begin,
// определить каталог, в котором находятся
// иллюстрации
BmpPath:=ExtractFilePath(ParamStr(0)) + 'data\' ; end;
end.
65. Напишите программу, при помощи которой можно создать базу данных "Архитектурные памятники Санкт-Петербурга". Вид формы программы приведен на рис. 1.74.
Р ис. 1.74. Форма программы Создать таблицу базы данных
// щелчок на кнопке Создать
procedure TForml.ButtonlClick(Sender: TObject);
begin
Queryl.DatabaseName := 'Peterburg'; I Peterburg — псевдоним базы данных, в которой будет создана таблица. } with Queryl do begin
SQL.Clear;
SQL.Add('CREATE TABLE pam (' ) ;
SQL.Add('Monument CHAR(60),');
SQL.Add('Architect CHAR(40),');
SQL.AddCNote CHAR(255) , ') ;
SQL.AddC Photo CHAR(12));');
// в процессе выполнения запроса возможны ошибки, // например нельзя создать таблицу, которая // уже есть в базе данных try
ExecSQL; // выполнить запрос
except
on E: EDBEngineError do
begin
ShowMessage('Ошибка создания таблицы БД.'+
#13 + Е.Message); Buttonl.Enabled := False; end; end; end; end;
66. Напишите программу работы с базой данных "Записная книжка". Для создания базы данных используйте утилиту Database Desktop, для создания псевдонима — SQL Explorer или
Примеры и задачи
223
BDE Administrator. Характеристики полей записей базы данных приведены в табл. 1.2, форма программы — на рис. 1.75.
книжка"
Поле
Таблица 1.2. Поля записей базы данных "Записная
Fam Name Tel Email
Т ип Размер Информация
A |
15 |
A |
20 |
A |
15 |
A |
20 |
Фамилия
Имя
Телефон
Адрес электронной почты
Р ис. 1.75. Форма программы Записная книжка
( Программа работы с базой данных
"Записная книжка".} unit adrbook_;
{ Сначала надо создать таблицу adrbook.db (в формате Paradox) и псевдоним adrbook. После этого нужно добавить в форму компонеты Table, DataSource, DBGrid и выполнить их настройку в соответствии с приведенной ниже таблицей.
Значение
Свойство
adrbook adrbook.db True Tablel DataSourcel
Tablet.DataBaseName Tablel. TableName Tablel.Active DataSourcel. DataSet DBGrid.DataSource
i
nterface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables, StdCtrls;
type
// база данных
TForml = class(TForm) Tablel: TTable; DataSourcel: TDataSource; DBGridl: TDBGrid;
// компонент отображения // базы данных DBNavigatorl: TDBNavigator; Buttonl: TButton; Button2: TButton; Queryl: TQuery;
procedure ButtonlClick(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private
{ Private declarations } public
I Public declarations } end;
var
Forml: TForml;
