Автор: Пользователь скрыл имя, 30 Ноября 2011 в 19:55, курсовая работа
Написать программу на языке СУБД, реа¬лизующей элементы языка SQL. Даны сущности, между кото¬рыми необходимо установить связь. Атрибуты сущностей задаются самостоятельно (3-6 на каж¬дую сущность). При необходимости, добавление новых сущностей приветствуется. Программа должна иметь удобный интерфейс пользователя и корректно реализовывать основные операции (добавление, удаление, изменение, поиск записи по любому атрибуту, сортировку при выводе).
Задание кафедры………………………………………………………………………………..…….3
Описание предметной области……………………………………………………………………..4
Диаграмма «сущность-связь»……………………………………………………………………....8
Нормализованные таблицы в 3 нормальной форме………………………………………………9
Описание основных функций программы ………………………………………………………10
Текст программы…………………………………………………………………………………..13
Выводы по работе………………………………………………………………………
checkbox18.State:=
checkbox19.State:=
checkbox20.State:=
checkbox21.State:=
end;
if CheckBox26.State=cbUnchecked then begin
checkbox18.State:=
checkbox19.State:=
checkbox20.State:=
checkbox21.State:=
end;
end;
end;
procedure vibortovar;
begin
with form1 do begin
if CheckBox27.State=cbChecked then begin
checkbox22.State:=
checkbox23.State:=
checkbox24.State:=
end;
if CheckBox27.State=cbUnchecked then begin
checkbox22.State:=
checkbox23.State:=
checkbox24.State:=
end;
end;
end;
procedure rename;
var
a,i:integer;
begin
with form1.DBGrid1 do begin
a:=Columns.Count-1;
for i:=0 to a do begin
if columns[i].FieldName='Index1'
then columns[i].Title.Caption:='¹
if columns[i].FieldName='Name1'
then columns[i].Title.Caption:='
if columns[i].FieldName='Adres'
then columns[i].Title.Caption:='
if columns[i].FieldName='Phone'
then columns[i].Title.Caption:='
if columns[i].FieldName='Fax'
then columns[i].Title.Caption:='
if columns[i].FieldName='Mail'
then columns[i].Title.Caption:='E-
if columns[i].FieldName='Key2' then columns[i].Visible:=false;
if columns[i].FieldName='Index2' then columns[i].Visible:=false;
if columns[i].FieldName='Kod'
then columns[i].Title.Caption:='
if columns[i].FieldName='Data'
then columns[i].Title.Caption:='
if columns[i].FieldName='Cena2'
then columns[i].Title.Caption:='
if columns[i].FieldName='Sklad'
then columns[i].Title.Caption:='
if columns[i].FieldName='Key3' then columns[i].Visible:=false;
if columns[i].FieldName='Index3' then columns[i].Visible:=false;
if columns[i].FieldName='Name3'
then columns[i].Title.Caption:='
if columns[i].FieldName='Col'
then columns[i].Title.Caption:='
if columns[i].FieldName='Cena3'
then columns[i].Title.Caption:='
end;
end;
end;
procedure selectall;
begin
with datamodule2.Query1 do begin
active:=false;
with sql do begin
clear;
add('select *');
add('from postavshik, postavka, tovar');
add('where');
add('(postavshik.index1=
add('order by index1');
end;
end;
nam:=1;
end;
procedure poisk; // ïîèñê èíôîðìàöèè
var
s1, s2, s3:string;
begin
s1:='select Index1';
if form1.CheckBox13.State=
if form1.CheckBox14.State=
if form1.CheckBox15.State=
if form1.CheckBox16.State=
if form1.CheckBox17.State=
s1:=s1+', Key2, Index2';
if form1.CheckBox18.State=
if form1.CheckBox19.State=
if form1.CheckBox20.State=
if form1.CheckBox21.State=
s1:=s1+', Key3, Index3';
if form1.CheckBox22.State=
if form1.CheckBox23.State=
if form1.CheckBox24.State=
s2:='where
(postavshik.Index1=postavka.
s3:='';
if form1.CheckBox1.State=
s2:=s2+' and (name1 like '''+form1.Edit1.Text+''')';
if form1.CheckBox2.State=
s2:=s2+' and (adres like '''+form1.Edit2.Text+''')';
if form1.CheckBox3.State=
s2:=s2+' and (phone like '''+form1.Edit3.Text+''')';
if form1.CheckBox4.State=
s3:=s3+' and (fax like '''+form1.Edit4.Text+''')';
if form1.CheckBox5.State=
s3:=s3+' and (mail like '''+form1.Edit5.Text+''')';
if form1.CheckBox6.State=
s3:=s3+' and (kod like '''+form1.Edit6.Text+''')';
if form1.CheckBox7.State=
s3:=s3+' and (data like '''+form1.Edit7.Text+''')';
if form1.CheckBox8.State=
s3:=s3+' and (cena2 like '''+form1.Edit8.Text+''')';
if form1.CheckBox9.State=
s3:=s3+' and (sklad like '''+form1.Edit9.Text+''')';
if form1.CheckBox10.State=
s3:=s3+' and (name3 like '''+form1.Edit10.Text+''')';
if form1.CheckBox11.State=
s3:=s3+' and (col like '''+form1.Edit11.Text+''')';
if form1.CheckBox12.State=
s3:=s3+'
and (cena3 like '''+form1.Edit12.Text+''')';
with datamodule2.Query1 do begin
active:=false;
with sql do begin
clear;
add(s1);
add('from postavshik, postavka, tovar');
add(s2);
add(s3);
add('order by index1');
end;
end;
nam:=2;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
selectall;
datamodule2.Query1.
rename;
end;
procedure
TForm1.DBGrid1TitleClick(
var
n:integer;
s:string;
begin
n:=datamodule2.Query1.
s:=column.FieldName;
if nam=1 then selectall;
if nam=2 then poisk;
datamodule2.Query1.SQL[n]
datamodule2.Query1.
rename;
end;
procedure TForm1.CheckBox25Click(Sender: TObject);
begin
viborpostavshik;
end;
procedure TForm1.CheckBox26Click(Sender: TObject);
begin
viborpostavka;
end;
procedure TForm1.CheckBox27Click(Sender: TObject);
begin
vibortovar;
end;
procedure TForm1.CheckBox28Click(Sender: TObject);
begin
with form1 do begin
if CheckBox28.State=cbChecked then begin
checkbox25.State:=
checkbox26.State:=
checkbox27.State:=
end;
if CheckBox28.State=cbUnchecked then begin
checkbox25.State:=
checkbox26.State:=
checkbox27.State:=
end;
end;
viborpostavshik; viborpostavka; vibortovar;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
poisk;
datamodule2.Query1.
rename;
form1.TabSheet2.Show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
selectall;
datamodule2.Query1.
rename;
form1.TabSheet2.Show;
end;
end
unit Unit2;
interface
uses
SysUtils, Classes, DBTables, DB;
type
TDataModule2 = class(TDataModule)
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
DataSource4: TDataSource;
Table1: TTable;
Table2: TTable;
Table3: TTable;
Query1: TQuery;
Table3Key3: TAutoIncField;
Table3Index3: TStringField;
Table3Name3: TStringField;
Table3Col: TStringField;
Table3Cena3: TStringField;
Table1Index1: TAutoIncField;
Table1Name1: TStringField;
Table1Adres: TStringField;
Table1Phone: TStringField;
Table1Fax: TStringField;
Table1Mail: TStringField;
Table2Key2: TAutoIncField;
Table2Index2: TFloatField;
Table2Kod: TStringField;
Table2Data: TStringField;
Table2Cena2: TStringField;
Table2Sklad: TStringField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule2: TDataModule2;
implementation
uses Unit1;
{$R *.dfm}
end.
Выводы
по работе
В ходе выполнения данной курсовой работы были изучены:
- Язык запросов SQL;
- Теория разработки и создания баз данных, которая была применена на практики при написании программы;
-
Была написана программа
В ходе выполнения курсовой работы были получены навыки работы с компонентами баз данных Borland Delphi Database Desktop, её драйверами и их свойствами. А так же была спроектирована реляционная база данных, которая позволяет автоматизировать при помощи ПК процесс сбора информации в данной области.
База данных состоит из 3 нормализованных таблиц, связанных между собой связями.
Пользователь может вносить изменения в базу данных, осуществлять поиск по фамилии, сортировать данные, добавлять в базу данных данные и удалять данные.
Список использованной
литературы
1) Архангельский А. Я. Разработка прикладных программ для Windows в Delphi 5 –М.: ЗАО «Издательство БИНОМ» 1999. -256 с.: ил. (Все о Delphi)
2) Архангельский А. Я. 100 компонентов общего назначения библиотеки Delphi 5 –М.: ЗАО «Издательство БИНОМ» 1999. -272 с.: ил. (Все о Delphi)
3) Фленов М.Е. Библия Delphi. - СПб.: БХВ - Петербург, 2005 –880 с.