Лабораторная работа № 16
Дисциплина: Базы данных и системы управления базами данных.
Группа: ПО305, ПО309
Специальность: Программное обеспечение информационных технологий
Тема: Изучение основных приемов работы с наборами данных: открытие и закрытие набора данных, программный доступ к записям, навигация по набору данных.
Цель: Научиться основным приемам работы с наборами данных: открытие и закрытие набора данных, программный доступ к записям, навигация по набору данных.
Программные средства: операционная система Windows, СУБД Delphi.
- Актуализация опорных знаний.
1. Охарактеризовать компоненты TADOTable(вкладка ADO)
2. Перечислить основные методы этих компонентов для работы с наборами данных
3. Перечислить основные методы этих компонентов для осуществления навигации по набору данных.
II. Ход работы.
1. Изучить пример создания приложения для работы с БД.
a) Создать базу данных BD в среде SQL Server Management Studio, в ней же создать таблицу Magazin (содержит информацию о научных журналах) со следующей структурой:
|
|
Название поля | Значение поля | Название поля в БД | Тип поля в БД |
Код | Целое, обязательное для заполнения, первичный ключ, автоинкремент | Kod | Integer, not null, identity(1,1), primary key |
Название журнала | Текстовое | Name_magaz | Varchar(30) not null |
Издательство | Текстовое | Publish | Varchar(15) |
Цена | Числовой | Cena | Float not null |
b) Создать приложение для изучения основных приемов работы с наборами данных: открытие и закрытие набора данных, программный доступ к записям, навигация по набору данных.
Компонент ADOConnection1 подключить к БД BD, все остальное происходит через приложение, используя код программы.
Листинг кода программы приведен ниже:
unit Unit1;
…………………
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
Panel1: TPanel;
Label7: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
ComboBox1: TComboBox;
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
………………….
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.DataSource1.AutoEdit:=false;
//Формирование списка издательств
form1.ComboBox1.Items.Clear;
form1.ComboBox1.Items.Add('БелПрод');
form1.ComboBox1.Items.Add('Просвещение');
form1.ComboBox1.Items.Add('София');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
//Если набор данных пуст, то удаление записей запрещено
If adotable1.RecordCount=0 then exit;
if messagedlg('Удалить запись?',mtconfirmation,[mbyes,mbno],0) <>mryes then exit;
|
|
label7.Font.Color:=clred;
label7.Caption:='УДАЛЕНИЕ ЗАПИСИ';
adotable1.Delete;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//Запрос на подтверждение перехода в режим вставки
if messagedlg('Добавить запись?',mtconfirmation,[mbyes,mbno],0) <>mryes then
abort;
adotable1.Insert;
label7.Font.Color:=clred;
label7.Caption:='ВСТАВКА ЗАПИСИ';
if edit1.CanFocus then edit1.SetFocus;
edit1.Text:=''; edit2.Text:='';
combobox1.Text:='';
end;
procedure TForm1.Button4Click(Sender: TObject);
var value:integer;
begin
//Запрос на подтверждение введенных значений
if (edit1.Text <> '') and (edit2.Text <> '') and (combobox1.Text<>'') then begin
adotable1.FieldByName('Name_magaz').AsString:=edit1.Text;
adotable1.FieldByName('Publish').AsString:=combobox1.Text;
if trystrtoint (edit2.Text,value) then
adotable1.FieldByName('cena').AsInteger:=strtoint(edit2.Text)
else adotable1.FieldByName('cena').AsInteger:=0;
adotable1.Post;
label7.Font.Color:=clred;
label7.Caption:='ПРИМЕНИТЬ';
end
else begin
showmessage('Проверьте правильность введенных данных');
exit;
end;
end;
procedure TForm1.N3Click(Sender: TObject);
//процедура открытия НД
begin
adotable1.Connection:=adoconnection1;
adotable1.TableName:='Magazin';
adotable1.Active:=true;
datasource1.DataSet:=adotable1;
dbgrid1.DataSource:=datasource1;
end;
procedure TForm1.N4Click(Sender: TObject);
//процедура закрытия НД
begin
adotable1.Active:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
adotable1.Edit;
label7.Font.Color:=clred;
label7.Caption:= 'РЕДАКТИРОВАНИЕ ЗАПИСИ';
end;
procedure TForm1.N2Click(Sender: TObject);
//Метод Close закрывает форму. Если закрываемая форма главная форма программы,
//то завершается работа всей программы.
begin
close;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
//процедура перехода на предыдущую запись
begin
adotable1.prior;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
//процедура перехода на следующую запись
begin
adotable1.Next;
end;
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
//Метод State – указывает текущее состояние набора данных, связанного с источником данных
// dsbrowse - НД находится в состоянии просмотра
begin
if datasource1.State in [dsbrowse] then begin
edit1.Text:= adotable1.FieldByName('Name_magaz').AsString;
edit2.Text:= inttostr(adotable1.FieldByName('cena').AsInteger);
combobox1.Text:= adotable1.FieldByName('Publish').AsString;
end;
end;
end.
III. Выполнение лабораторной работы:
- Реализовать приложение в среде Delphi для работы с таблицей и для демонстрации основных приемов работы с наборами данных.
- Доработать приложение с целью проверки правильности нажатия кнопок.
- Выводить на экран количество записей в таблице.
- Добавить в таблицу поле Количество экземпляров и доработать приложение для расчета Стоимости журнала.
Оформите отчет о проделанной работе, в котором должно присутствовать:
· Титульный лист, содержащий название учебного заведения, номер лабораторной работы, название дисциплины, название темы, номер группы и фамилию выполнившего лабораторную работу, номер варианта, фамилию преподавателя, принимающего защиту, город, год;
· Цель работы;
· Листинги приложения и скриншоты формы;
· Результаты отладки приложения.
IV. Подведение итогов.
V. Домашнее задание: Повторить тему “ Проектирование реляционных баз данных с использованием нормализации ”
Используемая литература: Голицына О.Л., Максимов Н. В., Попов И.И. «Базы данных», c.164-186
Критерии оценки деятельности учащегося.
Зачет | Учащийся выполняет большую часть практических действий, связанных с обработкой информации; в знакомой ситуации по образцу; допускает несущественные ошибки, устраняемые самостоятельно и с помощью педагога; применяет знания и умения для решения аналогичных практических задач в знакомой ситуации. Выполнен и предоставлен преподавателю на проверку отчет о лабораторной работе. |
Незачет | Учащийся выполнил меньшую половину задания лабораторной работы. Учащийся различает объекты, понятия, связанные с компьютерной обработкой информации; выполняет отдельные практические действия по обработке информации на компьютере в соответствии с представленной инструкцией; допускает существенные ошибки, устраняемые с помощью педагога. Не оформлен или не предоставлен преподавателю на проверку отчет о лабораторной работе. |
|
|
Задание лабораторной работы составил преподаватель: Цыганок О.Ч.