Порядок выполнения работы
Задание: написать программу «Учет сотрудников кафедры». Данное программное обеспечение демонстрирует основные способы взаимодействия ИСР Delphi с СУБД Access, а также приведены приемы работы с компонентами обеспечивающие данное взаимодействие.
ПОДКЛЮЧЕНИЕ БАЗЫ Создать папку с название exampledb Создание тестовой базы данных 1 Запустить Microsoft Access 2 Главное меню Файл->Создать. Выбрать новая база данных. 3 Сохранить в папку exampledb с названием testdb 4 Создание таблицы в режиме конструктора 5 Заполнить ИМЯ ПОЛЯ ТИП ДАННЫХ КЛЮЧ Id счетчики уникальный Name TEXT 6 Сохранить таблицу под названием table1 7 Выйти из ACCESS
Приложение в DELPHI 1 Запустить Delphi7 2 В главном меню выбрать File->Save All. Сохранить проект в папку exampledb. Названия сохраняемых файлов не менять. 3 Изменить свойство Caption формы Form1 на “Тестовая программа”. 5 В главном меню выбрать File->New->DataModule 6 В главном меню выбрать File->Save All. Названия сохраняемых файлов не менять. 7 Перейти на форму DataModule2. 8 В главном меню выбрать File->Use Unit. В появившемся окне выбрать Unit1 и нажать кнопку OK. 9 Разместить на форме DataModule2 следующие компоненты: – закладка ADO: компонент ADOConnection – закладка ADO: компонент ADOQuery – закладка Data Access: компонент DataSource 10 Изменить свойства компонентов:
11 Двойной щелчок по компоненту ADOQuery1. В появившемся окне кликнуть правой кнопкой мыши и в контекстном меню выбрать Add All Fields 12 Перейти на форму Form1. 13 В главном меню выбрать File->Use Unit. В появившемся окне выбрать Unit2 и нажать кнопку OK. 14 Разместить на форме Form1 следующие компоненты: – закладка DataControls: компонент DBGrid – закладка Standard: компонент Button 15 Свойству компонента DBGrid1 Datasource присвоить значение DataModule2.DataSource1; 16 Двойной щелчок мышкой по компоненту DBGrid1. В появившемся окне нажать правой кнопкой мыши и в контекстном меню выбрать AddAllFields 17 Выбрать поле Id и свойству Title - > Caption присвоить значение «Код». Свойству Width присвоить значение 60. 18 Выбрать поле Name и свойству Title - > Caption присвоить значение «Имя». Свойству Width присвоить значение 250. 19 Свойству Caption компонента Button1 присвоить значение «Показать». 20 Событие OnClick на Button1 procedure TForm1.Button1Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1 '); ADOQuery1.Open; end; end;
ДОБАВЛЕНИЕ ЗАПИСИ, СВЯЗЬ Изменение тестовой базы данных 1 Запустить Microsoft Access 2 Файл -> Открыть Выбрать папку exampledb, а в ней базу данных testdb 3 Выделить table1, найти кнопку Конструктор и нажать ее. 4 Добавить поле idw ИМЯ ПОЛЯ ТИП ДАННЫХ КЛЮЧ idw числовой 5 Сохранить изменения и закрыть table1 6 Нажать Создание таблицы в режиме конструктора 7 Выбрать ИМЯ ПОЛЯ ТИП ДАННЫХ КЛЮЧ idwork счетчки уникальный typework TEXT 8 Сохранить таблицу с названием table2 и выйти из конструктора
ПРИЛОЖЕНИЕ В DELPHI 1 Запустить Delphi7 2 В главном меню выбрать File->Open Project выбрать папку exampledb, а в ней проект с названием Project1 3 Перейти на форму DataModule2 Разместить на форме DataModule2 следующие компоненты: – закладка ADO: компонент ADOQuery – закладка Data Access: компонент DataSource 4 Изменить свойства компонентов:
5 Двойной щелчок по компоненту ADOQuery2. В появившемся окне кликнуть правой кнопкой мыши и в контекстном меню выбрать Add All Fields 6 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: – закладка DataControls: компонент DBGrid – закладка Standard: компонент Button 7 Свойству компонента DBGrid2 Datasource присвоить значение DataModule2.DataSource2; 8 Двойной щелчок мышкой по компоненту DBGrid2. В появившемся окне нажать правой кнопкой мыши и в контекстном меню выбрать AddAllFields 9 Выбрать поле idwork и свойству Title - > Caption присвоить значение «Код». Свойству Width присвоить значение 60. 10 Выбрать поле typework и свойству Title - > Caption присвоить значение «Название специальности». Свойству Width присвоить значение 250. 11 Свойству Caption компонента Button2 присвоить значение «Показать». 12 Событие OnClick на Button2 procedure TForm1.Button2Click(Sender: TObject); begin with DataModule2 do begin ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('select * from table2 '); ADOQuery2.Open; end; end; 13 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент Edit - Закладка Standard: компонент Label - Закладка Standard: компонент Button 14 Изменить свойства компонентов:
15 Разместить на форму компонент ComboBox1 Закладка Standard - > ComboBox. 16 Очистить свойство Text у ComboBox1. 17 Дописать выделенную строку var Form1: TForm1; aTypeWork:array of integer; 18 Событие OnClick на Button3 procedure TForm1.Button3Click(Sender: TObject); var i:integer; begin If Edit1.Text<>'' then begin with DataModule2 do begin ADOQuery2.Close; ADOQuery2.Open; if ADOQuery2.IsEmpty=false then ADOQuery2.Insert; ADOQuery2.Edit; ADOQuery2typework.AsString:=Edit1.Text; ADOQuery2.Post; ADOQuery2.Open; end; end; Edit1.Clear; i:=0; ComboBox1.Clear; with DataModule2 do begin ADOQuery2.Close; ADOQuery2.Open; ADOQuery1.Close; ADOQuery1.Open; end; if DataModule2.ADOQuery2.RecordCount<>0 then begin SetLength(aTypeWork,DataModule2.ADOQuery2.RecordCount); for i:=1 to DataModule2.ADOQuery2.RecordCount do begin DataModule2.ADOQuery2.RecNo:=i; ComboBox1.Items.Add(DataModule2.ADOQuery2typework.AsString); aTypeWork[i-1]:=DataModule2.ADOQuery2idwork.AsInteger; end; end; end; 19 Событие формы OnShow procedure TForm1.FormShow(Sender: TObject); var i:integer; begin i:=0; ComboBox1.Clear; with DataModule2 do begin ADOQuery2.Close; ADOQuery2.Open; ADOQuery1.Close; ADOQuery1.Open; end; if DataModule2.ADOQuery2.RecordCount<>0 then begin SetLength(aTypeWork,DataModule2.ADOQuery2.RecordCount); for i:=1 to DataModule2.ADOQuery2.RecordCount do begin DataModule2.ADOQuery2.RecNo:=i; ComboBox1.Items.Add(DataModule2.ADOQuery2typework.AsString); aTypeWork[i-1]:=DataModule2.ADOQuery2idwork.AsInteger; end; end; end; 20 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент Edit - Закладка Standard: компонент Label - Закладка Standard: компонент Button 21 Изменить свойства компонентов:
22 Событие OnClick на Button4 procedure TForm1.Button4Click(Sender: TObject); begin if ComboBox1.ItemIndex=-1 then begin ShowMessage('Выбрать специальность'); exit; end; if Edit2.Text='' then begin ShowMessage('Ввести имя'); exit; end; with DataModule2 do begin ADOQuery1.Close; ADOQuery1.Open; if ADOQuery1.IsEmpty=false then ADOQuery1.Insert; ADOQuery1.Edit; ADOQuery1name.AsString:=Edit2.Text; ADOQuery1idw.AsInteger:=atypework[ComboBox1.ItemIndex]; ADOQuery1.Post; Edit2.Clear; ComboBox1.ItemIndex:=-1; end; end; 23 Перейти на DataModule2 24 Двойной щелчок по ADOQuery1. В появившемся окне выбрать Add All Fields 25 На появившемся окне нажать правой кнопкой мыши и выбрать New Field 26 В появившемся окне заполнить Name – namework Type – string Field Type – LookUp LookUp Definition Key Fields – idw DataSet – ADOQuery2 LookUp Keys – idwork Result Field – typework Нажать кнопку ОК 27 Перейти на Form1 28 Двойной щелчок по DBGrid1 В появившемся окне выбрать Add All Fields На предупреждение Delete exesting columns Выбрать Yes 29 В этом окне выбрать поле idw Нажать кнопку Del на клавиатуре 30 В этом окне выбрать поле namework и свойству Title - > Caption присвоить значение «Название специальности». Свойству Width присвоить значение 250.
ПОИСК 1 Запустить Delphi7 2 В главном меню выбрать File->Open Project выбрать папку exampledb, а в ней проект с названием Project1 3 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент GroupBox - Закладка Standard: компонент Edit - Закладка Standard: компонент Button - Закладка Standard: компонент Button - Закладка Standard: компонент Label 4 Изменить свойства компонентов
5 Событие OnClick на Button5 procedure TForm1.Button5Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1 '); ADOQuery1.SQL.Add(' where name=:pname'); ADOQuery1.Parameters.ParamByName('pname').Value:=Edit3.Text; ADOQuery1.Open; end; end; 6 Событие OnClick на Button6 procedure TForm1.Button6Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1 '); ADOQuery1.Open; end; Edit3.Clear; end; 7 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент GroupBox - Закладка Standard: компонент Edit - Закладка Standard: компонент Button - Закладка Standard: компонент Button - Закладка Standard: компонент Label 8 Изменить свойства компонентов
9 Событие OnClick на Button7 procedure TForm1.Button7Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1 '); ADOQuery1.SQL.Add(' where name like :pname'); ADOQuery1.Parameters.ParamByName('pname').Value:=Edit4.Text+'%'; ADOQuery1.Open; end; end; 10 Событие OnClick на Button8 procedure TForm1.Button8Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1 '); ADOQuery1.Open; end; Edit4.Clear; end; 11 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент GroupBox - Закладка Standard: компонент Edit - Закладка Standard: компонент Button - Закладка Standard: компонент Button - Закладка Standard: компонент Label 12 Изменить свойства компонентов
13 Событие OnClick на Button9 procedure TForm1.Button9Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1 '); ADOQuery1.SQL.Add(' where name like:pname'); ADOQuery1.Parameters.ParamByName('pname').Value:='%'+Edit5.Text+'%'; ADOQuery1.Open; end; end; 14 Событие OnClick на Button10 procedure TForm1.Button8Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1 '); ADOQuery1.Open; end; Edit5.Clear; end; 15 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент GroupBox - Закладка Standard: компонент Edit - Закладка Standard: компонент Button - Закладка Standard: компонент Button - Закладка Standard: компонент Label 16 Изменить свойства компонентов
17 Событие OnClick на Button11 procedure TForm1.Button11Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Locate('name',Edit6.Text,[loCaseInsensitive]); end; end; 18 Событие OnClick на Button12 procedure TForm1.Button12Click(Sender: TObject); begin if DataModule2.ADOQuery1.RecordCount<>0 then DataModule2.ADOQuery1.RecNo:=1; end; 19 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент PopupMenu 20 Изменить свойства компонентов
21 Изменить свойства компонентов
22 Выбрать добавленный пункт меню Событие OnClick компонента PopupMenu1 для элемента меню Удалить procedure TForm1.N1Click(Sender: TObject); var i,code:Integer; begin with DataModule2 do begin if ADOQuery2.IsEmpty=true then begin ShowMessage('В таблице нет записей!'); Exit; end; code:=DBGrid2.DataSource.DataSet.FieldValues['idwork']; ADOQuery2.Delete; end; i:=0; ComboBox1.Clear; with DataModule2 do begin ADOQuery2.Close; ADOQuery2.Open; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('delete from table1 where idw=:idwork'); ADOQuery1.Parameters.ParamByName('idwork').Value:=code; ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1'); ADOQuery1.Open; end; if DataModule2.ADOQuery2.RecordCount<>0 then begin SetLength(aTypeWork,DataModule2.ADOQuery2.RecordCount); for i:=1 to DataModule2.ADOQuery2.RecordCount do begin DataModule2.ADOQuery2.RecNo:=i; ComboBox1.Items.Add(DataModule2.ADOQuery2typework.AsString); aTypeWork[i-1]:=DataModule2.ADOQuery2idwork.AsInteger; end; end; end; 23 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент PopupMenu 24 Изменить свойства компонентов
25 Изменить свойства компонентов
26 Выбрать добавленный пункт меню Событие OnClick компонента PopupMenu2 для элемента меню Удалить procedure TForm1.N2Click(Sender: TObject); begin with DataModule2 do begin if ADOQuery1.IsEmpty=true then begin ShowMessage('В таблице нет записей!'); Exit; end; ADOQuery1.Delete; end; end; 27 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент GroupBox - Закладка Standard: компонент Button - Закладка Standard: компонент Button - Закладка Standard: компонент Label - Закладка DataControls: компонент Edit 28 Изменить свойства компонентов
29 Событие OnClick на Button13 procedure TForm1.Button13Click(Sender: TObject); var codeSpec:integer; begin if Edit7.Text='' then begin ShowMessage('Введите название специальности'); exit; end; with DataModule2 do begin if ADOQuery2.Locate('typework',Edit7.Text,[]) then begin codeSpec:=ADOQuery2idwork.AsInteger; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text:='select * from table1 where idw=:idwork'; ADOQuery1.Parameters.ParamByName('idwork').Value:=codeSpec; ADOQuery1.Open; end else begin ShowMessage('Такой специальности не существует'); exit; end; end; end; 30 Событие OnClick на Button14 procedure TForm1.Button14Click(Sender: TObject); begin with DataModule2 do begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from table1 '); ADOQuery1.Open; end; Edit7.Clear; end; 31 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент GroupBox - Закладка Standard: компонент Button - Закладка Standard: компонент Label - Закладка DataControls: компонент DBEdit 32 Изменить свойства компонентов
33 Событие OnClick на Button15 procedure TForm1.Button15Click(Sender: TObject); begin if DataModule2.ADOQuery1.State=dsEdit then DataModule2.ADOQuery1.Post; end; 34 Перейти на форму Form1. Разместить на форме Form1 следующие компоненты: - Закладка Standard: компонент GroupBox - Закладка Standard: компонент Button - Закладка Standard: компонент Label - Закладка DataControls: компонент DBEdit 35 Изменить свойства компонентов
36 Событие OnClick на Button16 procedure TForm1.Button16Click(Sender: TObject); var i:integer; begin if DataModule2.ADOQuery2.State=dsEdit then begin DataModule2.ADOQuery2.Post; i:=0; ComboBox1.Clear; if DataModule2.ADOQuery2.RecordCount<>0 then begin SetLength(aTypeWork,DataModule2.ADOQuery2.RecordCount); for i:=1 to DataModule2.ADOQuery2.RecordCount do begin DataModule2.ADOQuery2.RecNo:=i; ComboBox1.Items.Add(DataModule2.ADOQuery2typework.AsString); aTypeWork[i-1]:=DataModule2.ADOQuery2idwork.AsInteger; end; end; end; end;
Экранная форма задания будет иметь следующий вид (см. рисунок 14.2).
Рисунок 14.2 - Экранная форма задания
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (351)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |