Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi базы.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

1.5. Самостоятельная работа

Создайте таблицы, относящиеся к БД:

  • Автосалон;

  • Магазин «Мороженное»;

  • Музыкальная картотека;

  • Зоомагазин;

  • Записная книжка.

Заполнить таблицы данными (10-12 записей) и сохранить в папке Baza на рабочем диске.

Глава II. Наборы данных

2.1. Набор данных

Таблицы БД располагаются на диске и являются физическими объектами. Для операций с данными, содержащимися в таблицах, используются наборы данных (НД). В терминах Delphi набор данных – это совокупность записей, взятых из одной или нескольких таблиц БД. НД является логической таблицей, с которой можно работать при выполнении приложения. Взаимодействие таблицы и НД напоминает взаимодействие физического файла и файловой переменной. В Delphi для работы с наборами данных таблиц применяются несколько компонент, но наиболее универсальным и часто используемыми являются НД Table и Query.

Компонент Table представляет собой набор данных, который в некоторый момент времени может быть связан с одной таблицей БД. Связь между таблицей и компонентом Table устанавливается через его свойство TableName, который определяет имя таблицы.

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

навигационный – заключается в обработке каждой отдельной записи НД. При навигационном способе доступа каждый НД имеет невидимый указатель текущей записи, который определяет запись, с которой могут выполняться такие операции, как редактирование, удаление;

реляционный – основан на обработке группы записей. При реляционном способе доступа для задания операций используются средства языка структурированных запросов – SQL (Structured Query Language).

2.2. Практическая работа

Создать приложение для просмотра и редактирования разных таблиц.

Пользователь может выбирать таблицу, данные которой выводятся в сетке DBGrid1. Выбор осуществляется в диалоге открытия файла, который вызывается при нажатии на кнопку «Открыть другую таблицу». После выбора таблицы ее имя устанавливается в качестве значения свойства TableName набора данных Table1.

При задании расположения БД программным способом НД предварительно необходимо закрыть (свойство Active = False).

Расположите на форме компоненты, показанные на рисунке. В компоненте DBGrid должна отображаться таблица Tovar.db

Напишите обработчик события OnClick для кнопки «Открыть другую таблицу»:

procedure TForm1.Button1Click(Sender: TObject);

begin

OpenDialog1.Filter:= 'Таблицы (*.db;*.dbf) | *.db;*.dbf | Все файлы | *.*';

If OpenDialog1.Execute then

begin

table1.Active:=false;

table1.tablename:=Opendialog1.FileName;

table1.Active:=true;

end;

end;

Напишите обработчик события OnCreate для формы:

procedure TForm1.FormCreate(Sender: TObject);

begin

DataSource1.DataSet:=Table1;

DBGrid1.DataSource:=DataSource1;

end;

Запустите программу и нажмите на кнопку «Открыть другую таблицу». В появившемся диалоговом окне зайдите в папку Baza и двойным щелчком выберите любую таблицу.

2.3. Самостоятельная работа

Для таблиц формата dBase и Paradox записи, составляющие НД, нумеруются с 1.

Чтобы определить номер текущей записи НД существует метод RecNo.

Выполните следующие задания:

1. При щелчке по записям таблицы выведите в поле Edit номер записи, по которой щелкнули мышью.

2. Осуществите переход на запись с указанным в поле Edit номером.

Число записей, составляющих НД, определяет свойство RecordCount типа Longint. Это свойство доступно для чтения при выполнении приложения.

Приведем пример, в котором производится перебор всех записей НД (Общая схема обработки всех записей НД):

var i:integer;

…

Table1.First; //переход к первой записи НД

for i:=1 to Table1.RecordCount do

begin

//здесь можно расположить операторы, которые обрабатывают одну запись НД

Table1.Next; //переход к следующей записи НД

end;