Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сравнительная характеристика dBase и Paradox

Поиск
Особенность dBase Paradox
Достоинства 1.Простота использования. 2. Совместимость с большим числом приложений. 1. Большое количество типов полей (точное описание данных). 2. Можно определить диапазон вводимых данных. 3. Поддерживается парольная защита таблиц
Имя поля Может состоять из букв и цифр и начинаться с буквы
Максимальная длина имени поля 10 символов 25 символов
Недопустимые символы имени поля Специальные символы и пробел ".", "!", "|"
Расширения файлов таблиц .dbf .db
Недостатки 1. Нет автоматического использования парольной защиты 2. Нет контроля целостности связей (правильность ссылок между таблицами). 1. Большое количество файлов для хранения содержащихся в таблице данных. 2. При копировании или перемещении таблицы необходимо обеспечить копирование или перемещение всех файлов, относящихся к таблице.

 

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

 

Создание простейшего приложения для работы с таблицами данных.

Выберите пункт главного меню Delphi Tools/Database Desktop для того, чтобы запустить программу Database Desktop, с помощью которого можно создавать таблицы, изменять их структуру и назначать им индексы.

После запуска Database Desktop выберите меню File/New/Table, чтобы начать процесс создания новой таблицы. После выбора этой команды на экране появляется окно Create Table, в котором нужно выбрать формат (тип) таблицы (например, Paradox 7). После выбора формата таблицы появляется окно определения структуры таблицы БД.

 

В этом окне находятся следующие поля:

  • Field Name – имя поля таблицы БД;
  • Type – тип поля (выбирается из списка, который открывается щелчком правой кнопкой мыши или клавишей пробел в поле Type, и отображается одним символом);
  • Size – размер поля (обычно задается для типа поля Alpha);
  • Key – указание ключевых полей (* – можно установить, нажав любую алфавитно-цифровую клавишу).

Каждая таблица должна иметь хотя бы одно поле.

[Insert] – вставка поля;

[Ctrl]+[Delete] – удаление поля (в окне определения и изменения структуры таблицы).

 

Определим поля, входящие в таблицу «Товары». Введите имя поля Tovar в столбец Field Name, в поле Type выберите тип поля Alpha и установите размер поля 20. Задайте для таблицы следующую структуру:

 

 

Field Name Type Size
Tovar A  
Kod N  
DataVipusk D  
SrokGodnos D  
Kolvo N  
Cena $  

 

Для каждого поля можно определить требование обязательного его заполнения значением. Для этого, переходя от поля к полю, включайте переключатели Required Field. Другие поля служат для наложения ограничений назначение поля:

  • Minimum value – определяет минимальное значение поля;
  • Maximum value – определяет максимальное значение поля;
  • Default value – определяет значение поля по умолчанию;
  • Picture – определяет шаблон изображения поля;

Отсутствия значения в одном из полей означает отсутствие ограничений на значение поля.

 

После определения структуры таблицы ее необходимо сохранить, нажав на кнопку Save as…,и в появившемся окне указать расположение таблицы на диске и задать ее имя.

Сохраните созданную таблицу на диске под именем Tovar.db в папке Baza на рабочем диске.

Закройте Database Desktop. Перейдите в главное окно Delphi. Подготовим форму для нашего приложения, с помощью которого можно перемещаться по записям таблицы БД, просматривать и редактировать поля, удалять записи из таблицы и вставлять новые.

Разместите на форме компоненты Table, DataSource (п. к. DataAccess) и DBGrid, DBNavigator (п. к. DataControls), в окне инспектора объектов установите для них свойства:

Компонент Свойство Значение
Table1 DataBaseName C:\Baza (путь к папке, где находится таблица)
TableName (открыть список). Если путь к таблице указан неверно, этот список не откроется. Tovar.db (имя нужной таблицы)
Active (двойной щелчок или открыть список) True (открываем таблицу)
DataSource1 DataSet (открыть списо)к Table1
DBGrid1 DataSource (открыть список) DataSource1
DBNavigator1 DataSource DataSource1

 

Запустите программу и заполните созданную вами таблицу (10 записей, 11-я – пустая). Чтобы добавилась новая запись, установите курсор в последнем поле таблицы и нажмите [Tab] на клавиатуре. Закройте работающую программу и установите для компонента Table1 в свойстве Active значение False и сразу же значение True. В окне формы в компоненте DBGrid вы увидите записи.

 

Компонент DataSource1(источник данных) является связующим элементом между компонентами доступа к данным (Table1 – соединен с реальной таблицей БД) и визуальными компонентами отображения данных (DBGrid1 – отображает содержимое таблицы в виде сетки).

 

– компонент DBNavigator используется для управления набором данных.

Свойство VisibleButtons типа TButtonSet – определяет состав видимых кнопок:

– перейти к первой записи

– к предыдущей

– к следующей

– к последней

– вставить новую запись

– удалить текущую запись

– редактировать текущую запись

– сохранить изменения записи

– отменить изменения текущей записи

– обновить информацию в БД

Свойство ConfirmDelete типа Boolean – выдает на экран окно для подтверждения удаления записи (True – по умолчанию), = False – запись удаляется без подтверждения.

Свойство Flat типа Boolean – управляет внешним видом кнопок

=False – кнопки отображаются в объемном виде;

=True – плоский вид кнопок.

Свойство DataSource – связывает навигатор с набором данных.

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

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

§ Автосалон;

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

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

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

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

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


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

 

Набор данных

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

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

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

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

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

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

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

Пользователь может выбирать таблицу, данные которой выводятся в сетке 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 и двойным щелчком выберите любую таблицу.

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

Для таблиц формата 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;

Режимы наборов данных

 

Наборы данных могут находиться в различных режимах. Текущий режим НД определяет свойство State. Оно доступно для чтения во время выполнения приложения и может быть использовано только для текущего режима. Для перевода данных в тот или иной режим применяются специальные методы.

НД может находиться в одном из следующих режимов:

§ dsInactive – НД закрыт и неактивен, доступ к его данным невозможен.

§ dsBrowse – режим просмотра, в котором осуществляется перемещение по записям НД и просмотр данных.

§ dsEdit – редактирование текущей записи.

§ dsInsert – вставка новой записи.

§ dsSetKey – поиск записи, удовлетворяющей заданному критерию.

§ dsCalcField – выполняется расчет вычисляемых полей.

§ dsFilter – выполняется фильтрация записей.

Связи между режимами наборов данных можно отобразить в виде схемы:

 

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

 

Создадим приложение, работающее с таблицами данных. Реализуем добавление, удаление, изменение и сохранение записей в таблице.

Поставьте на форму компоненты Table, DataSource, DBGrid для работы с таблицей Tovar.db. Свяжите их между собой.

Поставьте 5 кнопок Button, заголовки которых будут соответственно «Добавить», «Изменить», «Запомнить», «Удалить», «Отменить».

Опишем процедуры для каждой кнопки:

procedure TForm1.Button1Click(Sender: TObject);

Begin

if Table1.State= dsBrowse then

Table1.Insert;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

Begin

if Table1.State= dsBrowse then

Table1.Edit;

end;

 

procedure TForm1.Button3Click(Sender: TObject);

Begin

if Table1.State= dsBrowse then

if MessageDlg ('Удалить запись?', mtConfirmation, [mbYes, mbNo],0)=mrYes then

Table1.Delete;

end;

 

procedure TForm1.Button4Click(Sender: TObject);

Begin

if Table1.State in [dsInsert, dsEdit] then

Table1.Post;

end;

procedure TForm1.Button5Click(Sender: TObject);

Begin

if Table1.State in [dsInsert, dsEdit] then

Table1.Cancel;

end;

 



Поделиться:


Последнее изменение этой страницы: 2016-06-23; просмотров: 1125; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.166.141 (0.01 с.)