
- •Cодержание:
- •1. Основная часть:
- •1.3 Разработка управляющей программы для работы с бд:
- •Введение.
- •1.1 Проектирование реляционной бд “Книжный склад ”.
- •1.2 Создание бд “Книжный склад”.
- •1.3 Разработка управляющей программы для работы с бд.
- •1.3.1 Процедура контроля вводимых значений при редактировании бд.
- •1.3.2 Процедура контроля ссылочной целостности при удалении данных.
- •1.3.3 Процедура добавления данных в 1-ю таблицу.
- •1.3.4 Процедура заполнения компонентов ComboBox1 и ComboBox2 на Form3.
- •1.3.5 Процедура поиска с фильтрацией по 1-ой таблице.
- •1.3.6 Процедура восстановления связей.
- •1.3.7 Процедура запрашивания пароля при создании Form 1.
- •1.3.8 Формирование отчётов средствами sql запросов.
- •Заключение.
- •Список используемой литературы.
1.3.5 Процедура поиска с фильтрацией по 1-ой таблице.
procedure TForm3.Button1Click(Sender: TObject);
begin
//Если в ComboBox1 выбрана Таблица 1, то делаем её главной
if Form3.ComboBox1.ItemIndex=0 then
begin
Form1.Table1.MasterFields:='';
Form1.Table1.MasterSource:=nil;
Form1.Table2.MasterSource:=Form1.DataSource4;
Form1.Table2.MasterFields:='Kod_klienta';
Form1.Table3.MasterSource:=Form1.DataSource5;
Form1.Table3.MasterFields:='Kod_knigi';
Form1.Table4.MasterSource:=Form1.DataSource3;
Form1.Table4.IndexName:='Kodknigi';
Form1.Table4.MasterFields:='Kod_knigi';
Form1.Table5.MasterSource:=Form1.DataSource1;
Form1.Table5.IndexName:='Kodizdat';
Form1.Table5.MasterFields:='Kod_izdatelstva';
Form1.Table6.MasterSource:=Form1.DataSource2;
Form1.Table6.IndexName:='Kodklienta';
Form1.Table6.MasterFields:='Kod_klienta';
Form1.Table7.MasterSource:=Form1.DataSource1;
Form1.Table7.MasterFields:='';
//Поиск с фильтрацией
Form1.Table1.Filter:=ComboBox2.Text+'='''+Edit1.Text+'''';
Form1.Table1.Filtered:=True;
end;
1.3.6 Процедура восстановления связей.
procedure TForm1.Button8Click(Sender: TObject);
begin
//Сбрасывание всех значений
Form1.Table1.MasterFields:='';
Form1.Table1.MasterSource:=nil;
Form1.Table2.MasterFields:='';
Form1.Table2.MasterSource:=nil;
Form1.Table3.MasterFields:='';
Form1.Table3.MasterSource:=nil;
Form1.Table4.MasterFields:='';
Form1.Table4.MasterSource:=nil;
Form1.Table5.MasterFields:='';
Form1.Table5.MasterSource:=nil;
Form1.Table6.MasterFields:='';
Form1.Table6.MasterSource:=nil;
Form1.Table7.MasterFields:='';
Form1.Table7.MasterSource:=nil;
Form1.Table4.IndexName:='';
Form1.Table5.IndexName:='';
Form1.Table6.IndexName:='';
//Отключение фильтров
Form1.Table1.Filtered:=False;
Form1.Table2.Filtered:=False;
Form1.Table3.Filtered:=False;
Form1.Table4.Filtered:=False;
Form1.Table5.Filtered:=False;
Form1.Table6.Filtered:=False;
Form1.Table7.Filtered:=False;
//Восстановление связей
Form1.Table1.MasterSource:=Form1.DataSource7;
Form1.Table1.MasterFields:='Kod_izdatelstva';
Form1.Table2.MasterSource:=Form1.DataSource4;
Form1.Table2.MasterFields:='Kod_klienta';
Form1.Table3.MasterSource:=Form1.DataSource5;
Form1.Table3.MasterFields:='Kod_knigi';
Form1.Table4.MasterSource:=Form1.DataSource3;
Form1.Table4.IndexName:='Kodknigi';
Form1.Table4.MasterFields:='Kod_knigi';
Form1.Table5.MasterSource:=Form1.DataSource1;
Form1.Table5.IndexName:='Kodizdat';
Form1.Table5.MasterFields:='Kod_izdatelstva';
Form1.Table6.MasterSource:=Form1.DataSource2;
Form1.Table6.IndexName:='Kodklienta';
Form1.Table6.MasterFields:='Kod_klienta';
Form1.Table7.MasterSource:=nil;
Form1.Table7.MasterFields:='';
end;
1.3.7 Процедура запрашивания пароля при создании Form 1.
procedure TForm1.FormCreate(Sender: TObject);
//Запрос пароля при создании главной формы
Const
S=
'SELECT * '+
'FROM "Parole.db" ' +
'WHERE (Parole=''';
begin
PasswordDlg:=TPasswordDlg.Create(Application);//Создание формы задания пароля
Repeat
PasswordDlg.ShowModal;
if PasswordDlg.ModalResult=mrOK {нажатие на кнопку OK} Then
begin
//Анализ введённого пароля
Form1.Query1.Close;
Form1.Query1.SQL.Clear;
Form1.Query1.SQL.Add(S + PasswordDlg.Password.Text + ''')');
Form1.Query1.Open;
if Form1.Query1.RecordCount=0 then
{Вывод сообщения при вводе неправильного пароля}
MessageDlg('Неправильный пароль',mtInformation,[mbOK],0);
end
else
Halt;
Until Form1.Query1.RecordCount<>0;
PasswordDlg.Free;//удаление из динамической памяти
//Если введён пароль для уровня доступа 1 (Level=1)
If Form1.Query1.FieldByName('Level').AsInteger=1 then
Begin
//Отключаем кнопки удаления и добавления
Form1.Button1.Enabled:=False;
Form1.Button2.Enabled:=False;
Form1.Button3.Enabled:=False;
Form1.Button4.Enabled:=False;
Form1.Button5.Enabled:=False;
Form1.Button6.Enabled:=False;
Form1.Button7.Enabled:=False;
end;
end;