Implementation

uses Unit2;

 

Перейдите на вторую форму и выполните аналогичные действия. В окне кода программы появится аналогичный раздел:

Implementation

uses Unit1;

Разместите на второй форме четыре компонента DBEdit. Этот компонент представляет собой поле, в котором возможно отображение и изменение его значений.

Расположите на второй форме две кнопки BitBtn. В процессе ввода пользователь может утвердить ввод, нажав кнопку «Ввод», или отменить его, нажав кнопку «Отмена». После закрытия модальной формы ввода проверяется, какая кнопка нажата. Если «Ввод», то сделанные изменения принимаются, в противном случае – нет.

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

procedure TForm2.FormCreate(Sender: TObject);

Begin

DBEdit1.DataSource:=Form1.DataSource1;

DBEdit1.DataField:='Fio';

DBEdit2.DataSource:=Form1.DataSource1;

DBEdit2.DataField:='DataR';

DBEdit3.DataSource:=Form1.DataSource1;

DBEdit3.DataField:='Adres';

DBEdit4.DataSource:=Form1.DataSource1;

DBEdit4.DataField:='NomerChit';

BitBtn1.ModalResult:=mrOk;

BitBtn2.ModalResult:=mrCancel;

end;

Для кнопки «Добавить запись в конец НД»напишите обработчик события OnClick:

procedure TForm1.BitBtn1Click(Sender: TObject);

Begin

if table1.ReadOnly=False then

Begin

Table1.Append;

if Form2.ShowModal=mrOk then

Table1.Post

Else

Table1.Cancel;

End

Else

ShowMessage('Редактирование записей запрещено!');

end;

 

Для кнопки «Вставить запись» – следующую процедуру:

procedure TForm1.BitBtn2Click(Sender: TObject);

Begin

if table1.ReadOnly=False then

Begin

Table1.Insert;

if Form2.ShowModal=mrOk then

Table1.Post

Else

Table1.Cancel;

End

Else

ShowMessage('Редактирование записей запрещено!');

end;

Для кнопки «Удалить запись»:

procedure TForm1.BitBtn3Click(Sender: TObject);

Begin

if table1.ReadOnly=False then

Begin

if Messagedlg('Удалить запись?',

mtConfirmation,[mbYes, mbNo],0)=mrYes then

Table1.delete;

End

Else

ShowMessage('Редактирование записей запрещено!');

end;

 

 

После щелчка по этой кнопке на экране появляется окно, в котором происходит подтверждение или отказ от удаления текущей записи:


Глава VII. Работа со связанными таблицами

Организация связей между таблицами

В частном случае БД может состоять из одной таблицы. Однако, обычно реляционная БД (позволяет обрабатывать различные типы информации совместно) состоит из взаимосвязанных таблиц. Организация связи (отношений) между таблицами называется связыванием или соединением таблиц.

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

Связь между таблицами определяет отношение подчиненности, при котором одна таблица является главной (родительской, или мастером), а другая – подчиненной (дочерней, или детальной). Саму связь (отношение) называют связь «главный-подчиненный», «мастер-детальный».

Для связывания таблиц используются поля связи («совпадающие поля»). Поля связи обязательно должны быть индексированными. В подчиненной таблице для связи с главной таблицей состав полей индекса должен полностью или частично совпадать с составом полей индекса главной таблицы. Значения полей связи в главной и подчиненной таблицах должны совпадать (то есть в этих таблицах должны быть одинаковые поля).

Существуют следующие виды связи:

§ отношение «один-к-одному»;

§ отношение «один-ко-многим»;

§ отношение «много-к-одному»;

§ отношение «много-ко-многим».

Отношение «один-к-одному» означает, что одной записи в главной таблице соответствует одна запись в подчиненной таблице. Такое отношение используется при разбиении таблицы с большим числом полей на несколько таблиц.

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

Отношение «много-к-одному» отличается от отношения «один-ко-многим» только направлением. Если на отношение «один-ко-многим» посмотреть со стороны подчиненной таблицы, а не главной, то оно превращается в отношение «много-к-одному».

Отношение «много-ко-многим» имеет место, когда одной записи главной таблице может соответствовать несколько записей подчиненной таблицы и одновременно одной записи подчиненной таблицы – несколько записей главной таблицы. На практике такое отношение используется достаточно редко.

Работа со связанными таблицами имеет следующие особенности:

§ При изменении (редактировании) поля связи может нарушиться связь между записями двух таблиц, поэтому при редактировании поля связи записи главной таблицы нужно соответственно изменять и значения поля связи всех подчиненных записей.

§ При удалении записи главной таблицы нужно удалять и соответствующие ей записи в подчиненной таблице (каскадное удаление).

§ При добавлении записи в подчиненную таблицу значение поля связи формируется автоматически по значению поля связи главной таблицы.

При разработке приложения программист должен обеспечить следующее:

§ организация связи между таблицами;

§ контроль (запрет) редактирования полей связи;

§ организация каскадного удаления записей.

§








Дата добавления: 2015-05-16; просмотров: 799;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.