- •Методическое пособие по дисциплине «Базы данных» «Программирование баз данных в среде
- •Введение …………………………………………………………………………….3
- •Можно коня привести к воде, но нельзя заставить его пить.
- •Введение
- •1 Постановка задачи
- •2 Работа с программой bde Administrator Технология создания Баз Данных в среде Borland delphi Общий алгоритм разработки Базы Данных
- •3 Конструктор таблиц DataBase Desktop
- •Примеры таблиц с введенными строками .
- •4 Форма для отображения таблиц с помощью компонента tTable.
- •5. Добавление записей в таблицы через форму
- •Форма “Добавление работника”
- •Работа со связанными таблицами
- •7 Форма с фильтрацией данных из таблиц бд
- •Работа с компонентом tquery для выбора данных из таблиц с помощью команд языка sql
- •Часть №2.
- •Формы: Поиск работника, услуги, клиента.
- •Форма связывание таблиц.
- •Выбор информации из базы данных
- •Вывод выбранных данных в ms Excel
- •Образец базы данных «Автопарк» с формами и кодами
-
Работа со связанными таблицами
При установлении связи между таблицами в DELPHI необходимо иметь в виду следующие требования, таблицы связываются :
-
только по индексированным полям
-
по полям целочисленного типа (longinteger), которые должны быть проиндексированы.
Рассмотрим 2 таблицы на примере данной БД:
Klient- информация о клиенте
Zakaz - Карточки по движению заказов.
Главная таблица является таблица Klient ,а Zakaz - подчиненной
Klient Zakaz
k_cod Kl Z-Cod
k_FIO Z-data_najala
K_Tel Z-data_okonjaniya
Для задания связи между таблицами в компоненте Table2(в подчиненной таблице) задаются следующие свойства:
Master Sourse-в котором указывается источник данных главной таблицы по отношению к текущей.
Index Field name-имя поля связи подчиненной таблицы, которое должно быть проиндексировано.
Master Field - имя поля главной таблицы, по которому связывается главное и Подчиненное поле.
7 Форма с фильтрацией данных из таблиц бд
Фильтрация данных - отбор данных из таблиц по заданному выражению.
При фильтрации на форме в DBGrid1 остаются только отфильтрованные записи,удовлетворяющие условию.
Условие отбора может включать имена полей, логические и арифметические операции.Выражение для отбора данных заносится в свойство Table1Filter:string. Для активации фильтрации используется метод Table1Filtered=true.
Выборки по трем параметрам, которые выполняются в зависимости от нажатой (включенной) радиокнопки.
procedure TForm1.Button1Click(Sender: TObject); // Нажатие кнопки
«ВЫБРАТЬ»
begin
If (radiobutton1.Checked =true) and (Edit1.Text<>'') then
begin
Table2.Filter:='FIO_post='''+Edit1.text+'''';
Table2.Filtered:=true;
end
Else
ShowMessage ('Введите Фамилию работника');
If (radiobutton2.Checked =true) and (Edit2.Text<>'') then
begin
Table3.Filter:='FIO='''+Edit2.text+'''';
Table3.Filtered:=true;
end
Else
ShowMessage ('Введите фамилию клиента');
If (radiobutton3.Checked =true) and (Edit3.Text<>'') then
begin
Table4.Filter:='Naimen='''+Edit3.text+'''';
Table4.Filtered:=true;
end
Else ShowMessage ('Введите наименование объекта');
end;
end.
Удобно выбирать фамилию работника не из окна Edit , а из списка фамилий, который формируется прямо из таблицы «Работники».
Создание раскрывающегося списка ComboBox1 в процедуре создания формы – FormCreate.
procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.First;
While not Table1.Eof do
begin
ComboBox1.Items.ADD('Table1.FieldByname('Fam').asString');
Table1.Next;
end;
procedure TForm2.Button6Click(Sender: TObject); // кнопка ВЫБОР из списка
begin
Table1.Filter:='FIO='''+comboBox1.Text+'''';
table1.Filtered:=true;
if combobox1.Text='' then // Нет выбора из списка
begin
Table1.Filter:='';
table1.Filtered:=false;
end;
end;