- •Дисципліна: Навчальна практика з субд
- •Курс________________Група __________________Семестр______________ завдання на навчальну практику студента
- •Тема роботи: Створення бази даних для роботи з інформаційним матеріалом на тему «Фільмотека»
- •Вступ Мета практики: закріпити теоретичні знання і набути практичні навички роботи з базами даних, створити базу даних для роботи з інформаційним матеріалом на тему «Фільмотека».
- •1 Теоретична частина
- •2 Практична частина
- •2.1 Опис процедур і функцій користувача
- •2.2 Програмний код
- •2.2 Приклад роботи з бозою даних
2 Практична частина
2.1 Опис процедур і функцій користувача
Процедури і функції користувача модулю Unit1:
procedure ListBox11Click(Sender: TObject) – виконує обробку компонента ListBox.
procedure FormActivate(Sender: TObject) – виконує запи при активації форми.
Процедури і функції користувача модулю Unit2:
procedure Button1Click(Sender: TObject) – виведення результату роботи.
procedure LabeledEdit1KeyPress(Sender: TObject; var Key: Char) – заборона введення букв для LabeledEdit1.
2.2 Програмний код
Unit1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Menus, ExtCtrls, DBCtrls, DB, DBTables,
Grids, DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Database1: TDatabase;
DataSource1: TDataSource;
Table1: TTable;
DBNavigator1: TDBNavigator;
Panel1: TPanel;
BitBtn1: TBitBtn;
Query1: TQuery;
ListBox1: TListBox;
DBGrid2: TDBGrid;
Label1: TLabel;
DataSource2: TDataSource;
procedure ListBox1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.ListBox1Click(Sender: TObject);
begin
case listbox1.ItemIndex of
0:with form2 do
begin
edit1.Text:='';
label1.Caption:='Введіть прізвище актора';
showmodal;
end;
1:with form2 do
begin
edit1.Text:='';
label1.Caption:='Введіть назву фільма';
showmodal;
end;
2:with form3 do
begin
with query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT Nazva_filmu,Rik_vyhodu_na_ekran');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Rik_vyhodu_na_ekran = 2009');
Active:=True;
end;
showmodal;
end;
3:with form2 do
begin
edit1.Text:='';
label1.Caption:='Введіть Назву фільма';
showmodal;
end;
4:with form2 do
begin
edit1.Text:='';
edit2.Visible:=true;
edit2.Text:='';
label1.Caption:='Введіть прізвище актора';
label2.Caption:='Введіть прізвище режисера';
showmodal;
end;
5:with form3 do
begin
with query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT Actor');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Rik_vyhodu_na_ekran between 2008 and 2010');
Active:=True;
end;
showmodal;
end;
6:with form2 do
begin
edit1.Text:='';
label1.Caption:='Введіть прізвище режисера';
showmodal;
end;
7:with form2 do
begin
edit1.Visible:=false;
labelededit1.Visible:=true;
labelededit1.Text:='';
labelededit1.editlabel.Caption:='Введіть рік';
showmodal;
end;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
with Query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT Nazva_filmu,Rik_vyhodu_na_ekran');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Rik_vyhodu_na_ekran between ''2008''and''2011''');
Active:=True;
end;
end;
end.
Unit2
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, DBTables, ExtCtrls;
type
TForm2 = class(TForm)
BitBtn1: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
LabeledEdit1: TLabeledEdit;
procedure Button1Click(Sender: TObject);
procedure LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1, Unit3;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var a:string;
begin
with form3 do
begin
if (form2.label1.Caption='Введіть прізвище актора') then
begin
with query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT Nazva_filmu,Actor');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Actor = "'+form2.edit1.text+'"');
Active:=True;
end;
end;
if (form2.label1.Caption='Введіть назву фільма') then
begin
with query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT Nazva_filmu,Rejiser');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Nazva_filmu = "'+form2.edit1.text+'"');
Active:=True;
end;
end;
if (form2.label1.Caption='Введіть Назву фільма') then
begin
with query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT Rejiser,Simeynyy_stan_rejisera');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Nazva_filmu= "'+form2.edit1.text+'"');
Active:=True;
end;
end;
if ((form2.label1.Caption='Введіть прізвище актора')
and(form2.label2.Caption='Введіть прізвище режисера')) then
begin
with query1 do
begin
a:=form2.Edit2.Text;
Active:=False;
SQL.Clear;
SQL.Add('SELECT Actor,Rejiser,Rik_vyhodu_na_ekran');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Actor = "'+form2.edit1.text+'" and Rejiser = "'+a+'"');
Active:=True;
end;
end;
if (form2.label1.Caption='Введіть прізвище режисера') then
begin
with query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT Nazva_filmu,Rejiser');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Rejiser = "'+form2.edit1.text+'"');
Active:=True;
end;
end;
if (form2.labelededit1.editlabel.Caption='Введіть рік') then
begin
with query1 do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT Nomer_diska, Nazva_filmu, Rejiser, Actor,');
SQL.Add(' Rik_vyhodu_na_ekran,Simeynyy_stan_rejisera');
SQL.Add('FROM "'+'tab.db'+'"');
SQL.Add('WHERE Rik_vyhodu_na_ekran = "'+form2.labelededit1.text+'"');
Active:=True;
end;
end;
showmodal;
end;
form2.Close;
end;
procedure TForm2.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'0'..'9',chr(8):;
else key:=chr(0);
end;
end;
end.