- •Пояснительная записка
- •Содержание
- •Раздел I. Теоритическая часть
- •1.1 Выбор субд. Ms Access
- •1.3 Технология ado
- •Раздел II. Практическая часть
- •2.1 Описание предметной области
- •2.2 Создание реляционной базы данных
- •2.3 . Инфологическое проектирование бд «Читальный зал» в среде субд ms Access
- •Разработка приложения в Borland Delphi для работы с базой данных «Читальный зал»
- •Для создания главной формы (рис. 13) откроем Delphi и создадим новый проект. Поместим на него кнопку Button и в свойстве Caption назовём её «Выход». Двойным щелчком нажмём на неё и пропишем:
- •Также добавляем элемент PageControl1со вкладки Win32 и создадим на нём три вкладки с именами таблиц.
- •Приложение: листинг программы
Приложение: листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids,
RpCon, RpConDS, RpDefine, RpRave, ComObj;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Button1: TButton;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOQuery3: TADOQuery;
DataSource2: TDataSource;
DataSource3: TDataSource;
PageControl2: TPageControl;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
TabSheet9: TTabSheet;
PageControl3: TPageControl;
TabSheet10: TTabSheet;
TabSheet11: TTabSheet;
TabSheet12: TTabSheet;
TabSheet13: TTabSheet;
TabSheet14: TTabSheet;
TabSheet15: TTabSheet;
PageControl5: TPageControl;
TabSheet22: TTabSheet;
TabSheet23: TTabSheet;
TabSheet24: TTabSheet;
TabSheet25: TTabSheet;
TabSheet26: TTabSheet;
TabSheet27: TTabSheet;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button3: TButton;
Button4: TButton;
Button2: TButton;
RvProject1: TRvProject;
RvDataSetConnection1: TRvDataSetConnection;
RvProject2: TRvProject;
RvDataSetConnection2: TRvDataSetConnection;
RvProject3: TRvProject;
RvDataSetConnection3: TRvDataSetConnection;
Button5: TButton;
Button6: TButton;
Button7: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBox1: TComboBox;
Button8: TButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
ComboBox2: TComboBox;
Button9: TButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
ComboBox3: TComboBox;
Button10: TButton;
RadioGroup1: TRadioGroup;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Button11: TButton;
RadioGroup2: TRadioGroup;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Button12: TButton;
RadioGroup3: TRadioGroup;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
RadioGroup4: TRadioGroup;
Edit21: TEdit;
Button17: TButton;
RadioGroup5: TRadioGroup;
Edit22: TEdit;
Button18: TButton;
RadioGroup6: TRadioGroup;
Edit23: TEdit;
Button19: TButton;
Edit11: TEdit;
Edit12: TEdit;
Edit24: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Close
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
ADOQuery1.Active:= False;
ADOQuery1.SQl.Text:= Edit1.Text;
ADOQuery1.Active:=True;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery2.Active:= False;
ADOQuery2.SQl.Text:= Edit2.Text;
ADOQuery2.Active:= True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery3.Active:= False;
ADOQuery3.SQl.Text:= Edit3.Text;
ADOQuery3.Active:=True;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Form1.RvProject1.Execute;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Form1.RvProject2.Execute;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
Form1.RvProject3.Execute;
end;
procedure TForm1.Button8Click(Sender: TObject);
var s,p:string;
begin
if ComBobox1.text='' then showmessage('Не выбрано поле сортировки');
if ComBobox1.text='Код_операции' then p:='Код_операции';
if ComBobox1.text='Код_читателя' then p:='Код_читателя';
if ComBobox1.text='Код_книги' then p:='Код_книги';
if ComBobox1.text='Дата_выдачи' then p:='Дата_выдачи';
if ComBobox1.text='Дата_возврата' then p:='Дата_возврата';
if ComBobox1.text='Задолженность' then p:='Задолженность';
if ComBobox1.text='Дни_задолженности' then p:='Дни_задолженности';
adoquery1.Close;
adoquery1.SQL.Clear;
s:='select * from БИБЛИОТЕКА order by '+p;
if radiobutton2.checked=true then s:=s+' desc';
adoquery1.SQL.Add(s);
adoquery1.Open;
datasource1.DataSet:=adoquery1;
end;
procedure TForm1.Button9Click(Sender: TObject);
var a,t:string;
begin
if ComBobox2.text='' then showmessage('Не выбрано поле сортировки');
if ComBobox2.text='Код_книги' then t:='Код_книги';
if ComBobox2.text='Автор' then t:='Автор';
if ComBobox2.text='Название' then t:='Название';
if ComBobox2.text='Год_издания' then t:='Год_издания';
if ComBobox2.text='Количество_экземпляров' then t:='Количество_экземпляров';
adoquery2.Close;
adoquery2.SQL.Clear;
a:='select * from ФОНД order by '+t;
if radiobutton4.checked=true then a:=a+' desc';
adoquery2.SQL.Add(a);
adoquery2.Open;
datasource2.DataSet:=adoquery2;
end;
procedure TForm1.Button10Click(Sender: TObject);
var u,r:string;
begin
if ComBobox3.text='' then showmessage('Не выбрано поле сортировки');
if ComBobox3.text='Код_читателя' then r:='Код_читателя';
if ComBobox3.text='ФИО_читателя' then r:='ФИО_читателя';
if ComBobox2.text='Дата_регистрации' then r:='Дата_регистрации';
if ComBobox3.text='адрес' then r:='адрес';
if ComBobox3.text='Телефон' then r:='Телефон';
if ComBobox3.text='Место_работы' then r:='Место_работы';
adoquery3.Close;
adoquery3.SQL.Clear;
u:='select * from ЧИТАТЕЛИ order by '+r;
if radiobutton6.checked=true then u:=u+' desc';
adoquery3.SQL.Add(u);
adoquery3.Open;
datasource3.DataSet:=adoquery3;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
ADOQuery1.Filtered:=True;
if radiogroup1.ItemIndex=0 then ADOQuery1.Filter:='Код_операции='''+edit4.Text+'''';
if radiogroup1.ItemIndex=1 then ADOQuery1.Filter:='Код_читателя='''+edit5.Text+'''';
if radiogroup1.ItemIndex=2 then ADOQuery1.Filter:='Код_книги='''+edit6.Text+'''';
if radiogroup1.ItemIndex=3 then ADOQuery1.Filter:='Дата_выдачи='''+edit7.Text+'''';
if radiogroup1.ItemIndex=4 then ADOQuery1.Filter:='Дата_возврата='''+edit8.Text+'''';
if radiogroup1.ItemIndex=5 then ADOQuery1.Filter:='Задолженность='''+edit9.Text+'''';
if radiogroup1.ItemIndex=6 then ADOQuery1.Filter:='Дни_задолженности'''+edit10.Text+'''';
if radiogroup1.ItemIndex=7 then ADOQuery1.Filter:='';
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
ADOQuery2.Filtered:=True;
if radiogroup2.ItemIndex=0 then ADOQuery2.Filter:='Код_книги='''+edit13.Text+'''';
if radiogroup2.ItemIndex=1 then ADOQuery2.Filter:='Автор='''+edit14.Text+'''';
if radiogroup2.ItemIndex=2 then ADOQuery2.Filter:='Название='''+edit15.Text+'''';
if radiogroup2.ItemIndex=3 then ADOQuery2.Filter:='Год_издания='''+edit16.Text+'''';
if radiogroup2.ItemIndex=4 then ADOQuery2.Filter:='Количество_экземпляров='''+edit17.Text+'''';
if radiogroup2.ItemIndex=5 then ADOQuery2.Filter:='';
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
ADOQuery3.Filtered:=True;
if radiogroup3.ItemIndex=0 then ADOQuery3.Filter:='Код_читателя='''+edit18.Text+'''';
if radiogroup3.ItemIndex=1 then ADOQuery3.Filter:='ФИО_читателя='''+edit19.Text+'''';
if radiogroup3.ItemIndex=2 then ADOQuery3.Filter:='Дата_регистрации='''+edit20.Text+'''';
if radiogroup3.ItemIndex=3 then ADOQuery3.Filter:='адрес='''+edit11.Text+'''';
if radiogroup3.ItemIndex=4 then ADOQuery3.Filter:='Телефон='''+edit12.Text+'''';
if radiogroup3.ItemIndex=5 then ADOQuery3.Filter:='Место_работы='''+edit24.Text+'''';
if radiogroup3.ItemIndex=6 then ADOQuery3.Filter:='';
end;
procedure TForm1.Button14Click(Sender: TObject);
var
XL, Xarr: Variant;
i: Integer;
j: Integer;
begin
Xarr:=VarArrayCreate([1,ADOQuery1.FieldCount],varVariant);
XL:=CreateOLEObject('Excel.Application');
XL.WorkBooks.add;
XL.visible:=true;
j := 1;
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
i:=1;
while i<=ADOQuery1.FieldCount do
begin
Xarr[i] := ADOQuery1.Fields[i-1].Value;
I := i+1;
end;
XL.Range['A'+IntToStr(j),
CHR(64+ADOQuery1.FieldCount)+IntToStr(j)].Value := Xarr;
ADOQuery1.Next;
j:=j+1;
end;
XL.Range['A1',CHR(64+ADOQuery1.FieldCount)+IntToStr(j)].select;
XL.Selection.Font.Name:='Arial cur';
XL.Selection.Font.Size:=10;
XL.selection.Columns.AutoFit;
XL.Range['A1','A1'].select;
end;
procedure TForm1.Button15Click(Sender: TObject);
var
XL, Xarr: Variant;
i: Integer;
j: Integer;
begin
Xarr:=VarArrayCreate([1,ADOQuery2.FieldCount],varVariant);
XL:=CreateOLEObject('Excel.Application');
XL.WorkBooks.add;
XL.visible:=true;
j := 1;
ADOQuery2.First;
while not ADOQuery2.Eof do
begin
i:=1;
while i<=ADOQuery2.FieldCount do
begin
Xarr[i] := ADOQuery2.Fields[i-1].Value;
I := i+1;
end;
XL.Range['A'+IntToStr(j),
CHR(64+ADOQuery2.FieldCount)+IntToStr(j)].Value := Xarr;
ADOQuery2.Next;
j:=j+1;
end;
XL.Range['A1',CHR(64+ADOQuery2.FieldCount)+IntToStr(j)].select;
XL.Selection.Font.Name:='Arial cur';
XL.Selection.Font.Size:=10;
XL.selection.Columns.AutoFit;
XL.Range['A1','A1'].select;
end;
procedure TForm1.Button16Click(Sender: TObject);
var XL, Xarr: Variant;
i: Integer;
j: Integer;
begin
Xarr:=VarArrayCreate([1,ADOQuery3.FieldCount],varVariant);
XL:=CreateOLEObject('Excel.Application');
XL.WorkBooks.add;
XL.visible:=true;
j := 1;
ADOQuery3.First;
while not ADOQuery3.Eof do
begin
i:=1;
while i<=ADOQuery3.FieldCount do
begin
Xarr[i] := ADOQuery3.Fields[i-1].Value;
I := i+1; end;
XL.Range['A'+IntToStr(j),
CHR(64+ADOQuery3.FieldCount)+IntToStr(j)].Value := Xarr;
ADOQuery3.Next;
j:=j+1; end;
XL.Range['A1',CHR(64+ADOQuery3.FieldCount)+IntToStr(j)].select;
XL.Selection.Font.Name:='Arial cur';
XL.Selection.Font.Size:=10;
XL.selection.Columns.AutoFit;
XL.Range['A1','A1'].select;
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
if RadioGroup4.ItemIndex=0 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Код_операции',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end ;
if RadioGroup4.ItemIndex=1 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Код_читателя',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end ;
if RadioGroup4.ItemIndex=2 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Код_книги',Edit21.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end ;
if RadioGroup4.ItemIndex=3 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Дата_выдачи',Edit21.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end ;
if RadioGroup4.ItemIndex=4 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Дата_возврата',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end ;
if RadioGroup4.ItemIndex=5 then begin
Edit21.Visible:=true;
if not ADOQuery1.Locate('Задолженность',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end ;
if RadioGroup4.ItemIndex=6 then begin
Edit21.Visible:=true; if not ADOQuery1.Locate('Дни_задолженности',Edit21.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end ;
end;
procedure TForm1.Button18Click(Sender: TObject);
begin
if RadioGroup5.ItemIndex=0 then begin Edit22.Visible:=true;
if not ADOQuery2.Locate('Код_книги',Edit22.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден'); end ;
if RadioGroup5.ItemIndex=1 then begin
Edit22.Visible:=true;
if not ADOQuery2.Locate('Автор',Edit22.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден'); end ;
if RadioGroup5.ItemIndex=2 then begin Edit22.Visible:=true;
if not ADOQuery1.Locate('Название',Edit22.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end ;
if RadioGroup5.ItemIndex=3 then begin Edit22.Visible:=true;
if not ADOQuery2.Locate('Год_издания',Edit22.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end ;
if RadioGroup5.ItemIndex=4 then begin Edit22.Visible:=true; if not ADOQuery2.Locate('Количество_экземпляров',Edit22.text,[loCaseInsensitive,lopartialkey) then showMessage('Не найден'); end ;
end ;
procedure TForm1.Button19Click(Sender: TObject);
begin if RadioGroup6.ItemIndex=0 then begin Edit23.Visible:=true;
if not ADOQuery3.Locate('Код_читателя',Edit23.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end ;
if RadioGroup6.ItemIndex=1 then begin Edit23.Visible:=true;
if not ADOQuery3.Locate('ФИО_читателя',Edit23.text,[loCaseInsensitive,lopartialkey]) then showMessage('Не найден');
end ;
if RadioGroup6.ItemIndex=2 then begin Edit23.Visible:=true; if not ADOQuery3.Locate('Дата_регистрации',Edit23.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден'); end ;
if RadioGroup6.ItemIndex=3
then begin
Edit23.Visible:=true; if not ADOQuery3.Locate('адрес',Edit23.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end;
if RadioGroup6.ItemIndex=4 then begin
Edit23.Visible:=true;
if not ADOQuery3.Locate('Телефон',Edit23.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end;
if RadioGroup6.ItemIndex=5 then begin
Edit23.Visible:=true;
if not ADOQuery3.Locate('Место_работы',Edit23.text,[loCaseInsensitive,lopartialkey]) then
showMessage('Не найден');
end;
end;
end.