Методология проектирования баз данных — страница 2
Обновлено
END^
CREATE PROCEDURE EDITPROVERKI (
OPISANIE VARCHAR(1000),
NPROV INTEGER,
VID VARCHAR(15),
NAZVPODR VARCHAR(70),
FIO VARCHAR(20),
DATA DATE)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE NEW_PROCEDURE (
NAZV VARCHAR(70),
LOGIN VARCHAR(20),
FIO VARCHAR(20))
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE UPDATEDOCUMENT (
IZMEN VARCHAR(30),
TEMA VARCHAR(30),
NUM INTEGER)
AS
BEGIN
EXIT;
END^
SET TERM ; ^/****************************************************************/
/**** Tables ****/
/************************************************************/
CREATE TABLE ARHIVDOC (
NDOC INTEGER NOT NULL,
NKLASS VARCHAR(7) NOT NULL,
NAIMENDOC VARCHAR(70) NOT NULL,
VIDDOC VARCHAR(15) NOT NULL,
DATAPRINYATIYA DATE NOT NULL,
DATADELETE DATE NOT NULL,
TEMATIKA VARCHAR(30),
IZMENENIYA VARCHAR(30)
);
CREATE TABLE DIRECTOR (
FIO VARCHAR(20) NOT NULL,
LOGIN VARCHAR(20) NOT NULL,
DATAVSTUPLENIYA DATE NOT NULL
);
CREATE TABLE DOCUMENT (
NDOC INTEGER NOT NULL,
NKLASS VARCHAR(7) NOT NULL,
NAIMENDOC VARCHAR(70) NOT NULL,
VIDDOC VARCHAR(15) NOT NULL,
DATAPRINYATIYA DATE NOT NULL,
DATAIZMEN DATE,
STATUS VARCHAR(10),
TEMATIKA VARCHAR(30),
IZMENENIYA VARCHAR(30)
);
CREATE TABLE PODRAZD (
NPODR INTEGER NOT NULL,
FIOPODR VARCHAR(20) NOT NULL,
NAZVANIE VARCHAR(70) NOT NULL
);
CREATE TABLE PROTOCOL (
NUMBER INTEGER NOT NULL,
DATA DATE NOT NULL,
NRAB INTEGER,
NDOC INTEGER,
VREMYA TIME NOT NULL
);
CREATE TABLE PROVERKI (
NPROVERKI INTEGER NOT NULL,
DATA DATE NOT NULL,
FIO VARCHAR(20) NOT NULL,
NPODR INTEGER NOT NULL,
VID VARCHAR(15) ,
OPISANIE VARCHAR(1000)
);
CREATE TABLE RABOTNIK (
NUMBER INTEGER NOT NULL,
FIO VARCHAR(20) NOT NULL,
LOGIN VARCHAR(20) NOT NULL,
NPODR INTEGER NOT NULL);/**************************************************************/
/**** Unique Constraints ****/
/*********************************************************/
ALTER TABLE DOCUMENT ADD CONSTRAINT UNQ_DOCUMENT UNIQUE (NKLASS, NAIMENDOC);
ALTER TABLE RABOTNIK ADD CONSTRAINT UNQ_RAB UNIQUE (LOGIN);
/************************************************************/
/**** Primary Keys ****/
/************************************************************/
ALTER TABLE ARHIVDOC ADD CONSTRAINT PK_ARHIVDOC PRIMARY KEY (NDOC);
ALTER TABLE DIRECTOR ADD CONSTRAINT PK_DIRECTOR PRIMARY KEY (FIO);
ALTER TABLE DOCUMENT ADD CONSTRAINT PK_DOCUMENT PRIMARY KEY (NDOC);
ALTER TABLE PODRAZD ADD CONSTRAINT PK_PODRAZD PRIMARY KEY (NPODR);
ALTER TABLE PROTOCOL ADD CONSTRAINT PK_PROTOCOL PRIMARY KEY (NUMBER);
ALTER TABLE PROVERKI ADD CONSTRAINT PK_PROVERKI PRIMARY KEY (NPROVERKI);
ALTER TABLE RABOTNIK ADD CONSTRAINT PK_RABOTNIK PRIMARY KEY (NUMBER);
/************************************************************/
/**** Foreign Keys ****/
/************************************************************/
ALTER TABLE PROTOCOL ADD CONSTRAINT FK_PROTOCOL_DOC FOREIGN KEY (NDOC) REFERENCES DOCUMENT (NDOC) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE PROTOCOL ADD CONSTRAINT FK_PROTOCOL_RAB FOREIGN KEY (NRAB) REFERENCES RABOTNIK (NUMBER) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE PROVERKI ADD CONSTRAINT FK_PROV_DIR FOREIGN KEY (FIO) REFERENCES DIRECTOR (FIO) ON DELETE NO ACTION ON UPDATE CASCADE;
ALTER TABLE PROVERKI ADD CONSTRAINT FK_PROV_PODRAZD FOREIGN KEY (NPODR) REFERENCES PODRAZD (NPODR) ON DELETE NO ACTION ON UPDATE CASCADE;
ALTER TABLE RABOTNIK ADD CONSTRAINT FK_RAB_PODR FOREIGN KEY (NPODR) REFERENCES PODRAZD (NPODR) ON DELETE NO ACTION ON UPDATE CASCADE;
/************************************************************/
/**** Triggers ****/
/************************************************************/
SET TERM ^ ;
/* Trigger: BI_ARHIV */
CREATE TRIGGER BI_ARHIV FOR ARHIVDOC
ACTIVE BEFORE INSERT POSITION 0
AS
begin
/* Trigger text */
NEW.ndoc= GEN_ID(arhivn,1);
end
^
/* Trigger: BI_DOCUMRNT */
CREATE TRIGGER BI_DOCUMRNT FOR DOCUMENT
ACTIVE BEFORE INSERT POSITION 0
AS
begin
/* Trigger text */
NEW.ndoc= GEN_ID(docn,1);
end
^
/* Trigger: BI_PODRAZD */
CREATE TRIGGER BI_PODRAZD FOR PODRAZD
ACTIVE BEFORE INSERT POSITION 0
AS
begin
/* Trigger text */
NEW.npodr= GEN_ID(podrazdn,1);
end
^
/* Trigger: BI_PROTOCOL */
CREATE TRIGGER BI_PROTOCOL FOR PROTOCOL
ACTIVE BEFORE INSERT POSITION 0
AS
begin
/* Trigger text */
NEW.number= GEN_ID(protocoln,1);
end
^
/* Trigger: BI_PROVERKI */
CREATE TRIGGER BI_PROVERKI FOR PROVERKI
ACTIVE BEFORE INSERT POSITION 0
AS
begin
/* Trigger text */
NEW.nproverki= GEN_ID(proverkin,1);
end
^
/* Trigger: BI_RABOTNIK */
CREATE TRIGGER BI_RABOTNIK FOR RABOTNIK
ACTIVE BEFORE INSERT POSITION 0
AS
begin
/* Trigger text */
NEW.number= GEN_ID(rabn,1);
end
^
SET TERM ; ^
/***********************************************************/
/**** Stored Procedures ****/
/***********************************************************/
SET TERM ^ ;
ALTER PROCEDURE ADD_DOCUMENT (
NKLASS VARCHAR(7),
TEMA VARCHAR(30),
DATA DATE,
VID VARCHAR(15),
NAME VARCHAR(70))
AS
begin
/* Procedure Text */
insert into document(nklass,naimendoc,viddoc,dataprinyatiya,tematika)
values (:nklass,:name,:vid,:data,:tema);
end
^
ALTER PROCEDURE ADDDIRECTOR (
DATA DATE,
LOGIN VARCHAR(20),
FAMILY VARCHAR(20))
AS
begin
insert into director(FIO,LOGIN,DATAVSTUPLENIYA)
values (:family,:login,:data);
/* Procedure Text */ /*$$IBE$$
suspend;
$$IBE$$*/
end
^
ALTER PROCEDURE ADDPODRAZDELENIE (
NAZV VARCHAR(70),
FIO VARCHAR(20))
AS
begin
insert INTO podrazd(FIOPODR,NAZVANIE)
VALUES (:fio, :nazv);
end
^
ALTER PROCEDURE ADDPROTOCOL (
NUMDOC INTEGER)
AS
DECLARE VARIABLE NRAB INTEGER;
DECLARE VARIABLE USE VARCHAR(20);
DECLARE VARIABLE VREMYA TIME;
DECLARE VARIABLE DATA DATE;
begin
/* Procedure Text */
use = user;
data = 'TODAY';
vremya = 'NOW';
select NUMBER
FROM rabotnik
WHERE LOGIN =: use
INTO :NRAB;
INSERT INTO protocol(DATA ,VREMYA,NRAB,NDOC )
VALUES (:DATA,:VREMYA,:NRAB,:numdoc);
end
^
ALTER PROCEDURE ADDPROVERKI (
NAZVPODR VARCHAR(70),
FIO VARCHAR(20),
OPISANIE VARCHAR(1000),
VID VARCHAR(15),
DATA DATE)
AS
DECLARE VARIABLE PODR INTEGER;
begin
SELECT NPODR
FROM podrazd WHERE NAZVANIE=:NAZVPODR
INTO PODR ;
INSERT INTO PROVERKI(DATA, FIO, NPODR,VID,OPISANIE)
VALUES (:DATA,:FIO,:PODR,:VID,:OPISANIE);
end
^
ALTER PROCEDURE CLEARARHIV
AS
begin
/* Procedure Text */
delete from arhivdoc;
end
^
ALTER PROCEDURE CLEARPROTOCOL
AS
begin
/* Procedure Text */
delete from protocol;
end
^
ALTER PROCEDURE DELETEDIRECTOR (
FIO VARCHAR(20))
AS
begin
/* Procedure Text */
DELETE FROM director
where FIO=:fio;
end
^
ALTER PROCEDURE DELETEDOC (
NUM INTEGER)
AS
DECLARE VARIABLE IZMENENIYA VARCHAR(30) CHARACTER SET WIN1251;
DECLARE VARIABLE TEMATIKA VARCHAR(30) CHARACTER SET WIN1251;
DECLARE VARIABLE DATA DATE;
DECLARE VARIABLE VIDDOC VARCHAR(15) CHARACTER SET WIN1251;
DECLARE VARIABLE NAIMENDOC VARCHAR(70) CHARACTER SET WIN1251;
DECLARE VARIABLE NKLASS VARCHAR(7) CHARACTER SET WIN1251;
begin
/* Procedure Text */
select nklass,naimendoc,viddoc,dataprinyatiya,tematika,izmeneniya
from document
where ndoc = :num
into :nklass,:naimendoc,:viddoc,:data,:tematika,:izmeneniya ;
delete from document
where ndoc =:num;
insert into arhivdoc(nklass,naimendoc,viddoc,dataprinyatiya,datadelete,tematika,izmeneniya)
values(:nklass,:naimendoc,:viddoc,:data,'TODAY',:tematika,:izmeneniya);
end
^
ALTER PROCEDURE DELETEPODRAZD (
NOMER INTEGER)
AS
begin
DELETE from podrazd
WHERE NPODR=:nomer;
end
^
ALTER PROCEDURE DELETEPROVERKA (
NPROVERKI INTEGER)
AS
begin
/* Procedure Text */
delete FROM proverki
where NPROVERKI=:nproverki;
end
^
ALTER PROCEDURE DELETERABOTNIK (
NUM INTEGER)
AS
begin
DELETE FROM RABOTNIK
WHERE NUMBER =:NUM;
/* Procedure Text */
WHEN ANY do exception NODELETE;
end
^
ALTER PROCEDURE EDITPROVERKI (
OPISANIE VARCHAR(1000),
NPROV INTEGER,
VID VARCHAR(15),
NAZVPODR VARCHAR(70),
FIO VARCHAR(20),
DATA DATE)
AS
DECLARE VARIABLE PODR INTEGER;
begin
SELECT NPODR
FROM podrazd WHERE NAZVANIE=:NAZVPODR
INTO PODR ;
UPDATE PROVERKI
SET DATA=:DATA, FIO=:FIO, NPODR=:PODR,VID=:VID,OPISANIE=:OPISANIE
WHERE NPROVERKI =:NPROV ;
/* Procedure Text */
end
^
ALTER PROCEDURE NEW_PROCEDURE (
NAZV VARCHAR(70),
LOGIN VARCHAR(20),
FIO VARCHAR(20))
AS
DECLARE VARIABLE NUM INTEGER;
begin
/* Procedure Text */
select NPODR
FROM PODRAZD
WHERE NAZVANIE =:nazv
INTO NUM;
insert INTO RABOTNIK(FIO,LOGIN,NPODR)
VALUES (:fio, :login, :NUM );
end
^
ALTER PROCEDURE UPDATEDOCUMENT (
IZMEN VARCHAR(30),
TEMA VARCHAR(30),
NUM INTEGER)
AS
begin
/* Procedure Text */
UPDATE document
set DATAIZMEN = 'TODAY', STATUS='изменен',TEMATIKA=:TEMA,IZMENENIYA=:izmen
WHERE NDOC=:NUM;
end
^
SET TERM ; ^
Клиентская часть
unit Unit1;
interface
uses
Windows,RzLabel,RzCommon,Unit3,Unit4, DBCtrls, StdCtrls, Controls, Mask,
Grids, DBGrids, ComCtrls,
Classes, Messages, SysUtils, Variants, Graphics, Forms,
Dialogs,Unit2,Unit5,Unit6,Unit7, ExtCtrls, QuickRpt ;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
DBGrid1: TDBGrid;
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBEdit1: TDBEdit;
MaskEdit1: TMaskEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
DBGrid2: TDBGrid;
MaskEdit2: TMaskEdit;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Button3: TButton;
DBEdit3: TDBEdit;
Label18: TLabel;
Button5: TButton;
DBGrid3: TDBGrid;
Edit3: TEdit;
Edit4: TEdit;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Button6: TButton;
DBEdit4: TDBEdit;
Label22: TLabel;
Button7: TButton;
Memo1: TMemo;
DBMemo1: TDBMemo;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Edit5: TEdit;
Edit6: TEdit;
ComboBox4: TComboBox;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Button4: TButton;
DBEdit2: TDBEdit;
Button8: TButton;
DBGrid4: TDBGrid;
DBGrid5: TDBGrid;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
DBMemo2: TDBMemo;
Label32: TLabel;
DBEdit5: TDBEdit;
DBGrid6: TDBGrid;
Label33: TLabel;
Button13: TButton;
TabSheet8: TTabSheet;
DBGrid7: TDBGrid;
Button14: TButton;
Panel1: TPanel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button15: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure MaskEdit2Change(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Edit5Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
rocedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
s1 : String;
s2 : String;
s3 : TDateTime;
begin
s1:= Edit1.Text;
s2:=AnsiUpperCase(Edit2.Text);
//s3:= StrToDateTime(MaskEdit1.Text);
if((s1='') or (s2='') or (s3=NULL))then
begin
ShowMessage('Проверьте заполнение всех полей');
exit;
end ;
s3:= StrToDateTime(MaskEdit1.Text);
try
DM.DobavlenieIBSP.Prepare;
DM.DobavlenieIBSP.ParamByName('FAMILY').AsString:=s1;
DM.DobavlenieIBSP.ParamByName('LOGIN').AsString:=s2;
DM.DobavlenieIBSP.ParamByName('DATA').AsDateTime:=s3;
DM.DobavlenieIBSP.ExecProc;
DM.IBTransaction1.Commit;
DM.IBQuery1.Active:= true;
except
ShowMessage('Ошибка при добавлении !!!');
DM.IBTransaction1.Rollback;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MaskEdit1.Text:='xx.xx.xx';
Edit1.Text:='';
Edit2.Text:='';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
try
DM.UdalenieDirIBSP.Prepare;
DM.UdalenieDirIBSP.ParamByName('FIO').AsString:=DBEdit1.Text;
DM.UdalenieDirIBSP.ExecProc;
DM.IBTransaction1.Commit;
DM.IBQuery1.Active:= true;
except
ShowMessage('Ошибка при удалении !!!');
DM.IBTransaction1.Rollback;
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if((Edit3.Text='') or (Edit4.Text=''))then
begin
ShowMessage('Проверьте заполнение всех полей');
exit;
end ;
try
DM.AddPodrIBSP.Prepare;
DM.AddPodrIBSP.ParamByName('NAZV').AsString:=Edit4.Text;
DM.AddPodrIBSP.ParamByName('FIO').AsString:=Edit3.Text;
DM.AddPodrIBSP.ExecProc;
DM.IBTransaction3.Commit;
DM.IBQuery3.Active:= true;
except
ShowMessage('Ошибка при добавлении !!!');
DM.IBTransaction3.Rollback;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
try
DM.DeletePodrIBSP.Prepare;
DM.DeletePodrIBSP.ParamByName('Nomer').AsInteger:=StrToInt(DBEdit4.Text);
DM.DeletePodrIBSP.ExecProc;
DM.IBTransaction3.Commit;
DM.IBQuery3.Active:= true;
except
ShowMessage('Ошибка при добавлении !!!');
DM.IBTransaction3.Rollback;
end;
end;
procedure TForm1.MaskEdit2Change(Sender: TObject);
begin
//---фамилия проверяющего для таблицы "Проверки"------
Combobox1.Clear;
DM.IBQuery1.Last;
Combobox1.Items.add(DM.IBQuery1.FieldValues['FIO']);
//-----------------------------------------------------
//---проверяемое подразделение для таблицы "Проверки"------
Combobox2.Clear;
DM.IBQuery3.first;
while not DM.IBQuery3.Eof do
begin
Combobox2.Items.add(DM.IBQuery3.FieldValues['NAZVANIE']);
DM.IBQuery3.Next;
end;
//-----------------------------------------------------
//-----------------
Combobox3.Clear;
Combobox3.Items.Add('значительное');
Combobox3.Items.Add('незначительное');
//---------------
//DBRichEdit1.Field.Assign(DBRichEdit1.Lines);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if ((Combobox1.Text='')or(Combobox2.Text='')) then
begin
ShowMessage('Заполните обязательные для заполнения поля!!!');
exit;
end;
try
DM.InsertProverIBSP.Prepare;
DM.InsertProverIBSP.ParamByName('NAZVPODR').AsString:=Combobox2.Text;
DM.InsertProverIBSP.ParamByName('FIO').AsString:=Combobox1.Text;
DM.InsertProverIBSP.ParamByName('VID').AsString:=Combobox3.Text;
DM.InsertProverIBSP.ParamByName('DATA').AsDateTime:=StrToDateTime(MaskEdit2.Text);
DM.InsertProverIBSP.ParamByName('OPISANIE').AsString:=Memo1.Text;
DM.InsertProverIBSP.ExecProc;
DM.IBTransaction2.Commit;
DM.IBQuery2.Active:= true;
except
ShowMessage('Ошибка при добавлении !!!');
DM.IBTransaction2.Rollback;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
try
if (DBEdit3.Text='') then
begin
ShowMessage('В таблице отсутствуют записи!!!');
exit;
end;
DM.DeleteProvIBSP.Prepare;
DM.DeleteProvIBSP.ParamByName('NPROVERKI').AsInteger:=StrToInt(DBEdit3.Text);
DM.DeleteProvIBSP.ExecProc;
DM.IBTransaction2.Commit;
DM.IBQuery2.Active:= true;
except
ShowMessage('Ошибка при удалении !!!');
DM.IBTransaction2.Rollback;
end;
end;
procedure TForm1.Edit5Change(Sender: TObject);
begin
//--подразделение к которому работник приписан для таблицы "Работники"---
Combobox4.Clear;
DM.IBQuery3.first;
while not DM.IBQuery3.Eof do
begin
Combobox4.Items.add(DM.IBQuery3.FieldValues['NAZVANIE']);
DM.IBQuery3.Next;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if ((Edit5.Text='')or(Edit6.Text='')or(Combobox4.Text='')) then
begin
ShowMessage('Необходимо заполнить все поля!!!');
exit;
end;
try
DM.InsertRabotnikIBSP.Prepare;
DM.InsertRabotnikIBSP.ParamByName('NAZV').AsString:=Combobox4.Text;
DM.InsertRabotnikIBSP.ParamByName('FIO').AsString:=Edit5.Text;
DM.InsertRabotnikIBSP.ParamByName('LOGIN').AsString:=Edit6.Text;
DM.InsertRabotnikIBSP.ExecProc;
DM.IBTransaction4.Commit;
DM.RabotnikIBT.Active:= true;
except
ShowMessage('Ошибка при добавлении !!!');
DM.IBTransaction4.Rollback;
end;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
try
if (DBEdit2.Text='') then
begin
ShowMessage('В таблице отсутствуют записи!!!');
exit;
end;
DM.DeleteRabotnikIBSP.Prepare;
DM.DeleteRabotnikIBSP.ParamByName('NUM').AsInteger:=StrToInt(DBEdit2.Text);
DM.DeleteRabotnikIBSP.ExecProc;
DM.IBTransaction4.Commit;
DM.RabotnikIBT.Active:= true;
except
ShowMessage('Ошибка при удалении !!!');
DM.IBTransaction4.Rollback;
end;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
Form4.Show;
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
try
DM.ClearArhivIBSP.Prepare;
DM.ClearArhivIBSP.ExecProc;
DM.IBTransaction5.Commit;
DM.IBQuery6.Active:= true;
DM.IBQuery5.Active:= true;
DM.IBQuery7.Active:= true;
except
ShowMessage('Ошибка при удалении !!!');
DM.IBTransaction5.Rollback;
end;
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
try
DM.ClearProtocolIBSP.Prepare;
DM.ClearProtocolIBSP.ExecProc;
DM.IBTransaction5.Commit;
DM.IBQuery7.Active:= true;
DM.IBQuery5.Active:= true;
except
ShowMessage('Ошибка при удалении !!!');
DM.IBTransaction5.Rollback;
end;
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
if (RadioButton1.Checked) then Form6.QuickRep1.Preview ;
if (RadioButton2.Checked) then Form7.QuickRep1.Preview ;
end;
end.
procedure TForm3.Button1Click(Sender: TObject);
var
FileViewer: TRzURLLabel;
FileName : String ;
begin
//создаем объект для просмотра файлов
FileViewer:=TRzURLLabel.Create(Form3);
FileName:= DBEdit1.Text ;
FileViewer.URL:= FileName;
if FileExists(FileName) then
begin
FileViewer.Click;
end
else
begin
ShowMessage('Такого файла не существует или он не помещен в нужный каталог (см. инструкцию)');
exit;
end;
//------ ПРОТОКОЛ РАБОТЫ--------------------------------------
try
DM.ProtocolIBSP.Prepare;
DM.ProtocolIBSP.ParamByName('NUMDOC').AsInteger:=StrToInt(DBEdit2.Text);
DM.ProtocolIBSP.ExecProc;
DM.IBTransaction5.Commit;
DM.IBQuery7.Active:= true;
DM.IBQuery6.Active:= true;
DM.IBQuery5.Active:= true;
except
ShowMessage('Ошибка !!!');
DM.IBTransaction5.Rollback;
end;
//------------------------------------------------------------------
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
if ((Memo1.Text='')) then
begin
ShowMessage('Необходимо заполнить поле "Характер изменений"!!!');
exit;
end;
try
DM.UpdateDocIBSP.Prepare;
DM.UpdateDocIBSP.ParamByName('NUM').AsInteger:=StrToInt(DBEdit2.Text);
DM.UpdateDocIBSP.ParamByName('TEMA').AsString:=DBEdit5.Text;
DM.UpdateDocIBSP.ParamByName('IZMEN').AsString:=Memo1.Text;
DM.UpdateDocIBSP.ExecProc;
DM.IBTransaction5.Commit;
DM.IBQuery5.Active:= true;
except
ShowMessage('Ошибка при обновлении !!!');
DM.IBTransaction5.Rollback;
end;
end;
end.
procedure TForm4.Button1Click(Sender: TObject);
var
s: String;
begin
SaveDialog1.Execute;
Edit1.Text:= SaveDialog1.FileName;
Combobox1.Clear;
Combobox1.Items.Add('внутренний');
Combobox1.Items.Add('нормативный');
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
if ((Edit1.Text='')) then
begin
ShowMessage('Необходимо выбрать документ!!!');
exit;
end;
if ((Combobox1.Text='')or(Edit3.Text='')) then
begin
ShowMessage('Заполните обязательные для заполнения поля!!!');
exit;
end;
try
DM.InsertDocIBSP.Prepare;
DM.InsertDocIBSP.ParamByName('NKLASS').AsString:=Edit3.Text;
DM.InsertDocIBSP.ParamByName('TEMA').AsString:=Edit2.Text;
DM.InsertDocIBSP.ParamByName('VID').AsString:=Combobox1.Text;
DM.InsertDocIBSP.ParamByName('DATA').AsDateTime:=StrToDateTime(MaskEdit2.Text);
DM.InsertDocIBSP.ParamByName('NAME').AsString:=Edit1.Text;
DM.InsertDocIBSP.ExecProc;
DM.IBTransaction5.Commit;
DM.IBQuery5.Active:= true;
except
ShowMessage('Ошибка при добавлении !!!');
DM.IBTransaction5.Rollback;
end;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
try
DM.DeleteDocIBSP.Prepare;
DM.DeleteDocIBSP.ParamByName('NUM').AsInteger:=StrToInt(DBEdit2.Text);
DM.DeleteDocIBSP.ExecProc;
DM.IBTransaction5.Commit;
DM.IBQuery5.Active:= true;
DM.IBQuery6.Active:= true;
DM.IBQuery7.Active:= true;
except
ShowMessage('Ошибка при добавлении !!!');
DM.IBTransaction5.Rollback;
end;
end;
Список используемой литературы
1) Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация сопровождение. Теория и практика: Уч пос.-М.: Издательский дом «Вильямс», 2000.
2) Дейт К. Введение в системы баз данных. - СПб: Издательский дом «Вильямс», 1999.
3) Фаронов В.В. Delphi7 и разработка приложений баз данных.- М.: «НОЛИДЖ», 2003.
Страницы: 1, 2
