Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Записка по Бд.doc
Скачиваний:
7
Добавлен:
16.03.2015
Размер:
1.14 Mб
Скачать
    1. Формирование отчетов.

Для формирования отчетов в Delphi7 предусмотрена закладка компонентовRave. Она включает в себя компоненты для связи с даннымиRvDataSetConnection, платформу отчетов RvSystem и компонет создания отчетаRvReport. При вызове методаExecuteкомпонентаRvReportформируется отчет по заранее составленному шаблону (рис 13). Шаблоны создаются в менюTools/RaveDisignerвDelphi7 и храняться в файлах .ravв каталоге компиляции программы.

Рис 12. Общий отчет по БД.

Текст программы

    1. PrBd.Dpr

program prBd;

uses

Forms,

uFormBd in 'uFormBd.pas' {fMain};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TfMain, fMain);

Application.Run;

end.

    1. UFormBb.Pas

unit uFormBd;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ComCtrls,

ExtCtrls, TeEngine, Series, TeeProcs, Chart, DbChart, RpDefine, RpCon,

RpConDS, Menus, XPMan, RpBase, RpSystem, RpRave;

type

TfMain = class(TForm)

dsMain: TDataSource;

dbgMain: TDBGrid;

bActive: TButton;

bPassive: TButton;

pcTablitzi: TPageControl;

tsTitle: TTabSheet;

tsPart1: TTabSheet;

qMain: TQuery;

qMainSTUDENT_FAMILY: TStringField;

qMainMARK: TIntegerField;

qMainDATE_DEFENCE: TStringField;

qMainNUMBER: TIntegerField;

updSqlVkladka: TUpdateSQL;

qUpdate: TQuery;

dsUpdate: TDataSource;

leMinist: TLabeledEdit;

leUniver: TLabeledEdit;

leDepartment: TLabeledEdit;

leStudent_Family: TLabeledEdit;

leStudent_Name: TLabeledEdit;

leYear: TLabeledEdit;

leRukovod: TLabeledEdit;

leExaminator: TLabeledEdit;

leMark: TLabeledEdit;

leDate_Begining: TLabeledEdit;

leDate_Defence: TLabeledEdit;

leVariant_N: TLabeledEdit;

leFirst_Part_Name: TLabeledEdit;

leSecond_Part_Name: TLabeledEdit;

leThird_Part_Name: TLabeledEdit;

leFirst_Part_Date: TLabeledEdit;

leSecond_Part_Date: TLabeledEdit;

leThird_Part_Date: TLabeledEdit;

qUpdateNUMBER: TIntegerField;

qUpdateMINIST: TStringField;

qUpdateUNIVER: TStringField;

qUpdateDEPARTMENT: TStringField;

qUpdateSTUDENT_FAMILY: TStringField;

qUpdateSTUDENT_NAME: TStringField;

qUpdateYEAR: TIntegerField;

qUpdateRUKOVOD: TStringField;

qUpdateEXAMINATOR: TStringField;

qUpdateMARK: TIntegerField;

qUpdateDATE_BEGINING: TIntegerField;

qUpdateDATE_DEFENCE: TStringField;

qUpdateVARIANT_N: TIntegerField;

qUpdateFIRST_PART_NAME: TStringField;

qUpdateSECOND_PART_NAME: TStringField;

qUpdateTHIRD_PART_NAME: TStringField;

qUpdateFIRST_PART_DATE: TIntegerField;

qUpdateSECOND_PART_DATE: TStringField;

qUpdateTHIRD_PART_DATE: TStringField;

qUpdateNUMB_PAGES: TStringField;

qUpdateNUMB_PICT: TStringField;

qUpdateNUMB_IST: TStringField;

leNumb_Pages: TLabeledEdit;

leNumb_Pict: TLabeledEdit;

leNumb_Ist: TLabeledEdit;

qTitle: TQuery;

qTitleNUMBER: TIntegerField;

qTitleMINIST: TStringField;

qTitleUNIVER: TStringField;

qTitleDEPARTMENT: TStringField;

qTitleSTUDENT_FAMILY: TStringField;

qTitleSTUDENT_NAME: TStringField;

qTitleYEAR: TIntegerField;

qTitleRUKOVOD: TStringField;

qTitleEXAMINATOR: TStringField;

qTitleMARK: TIntegerField;

qTitleDATE_BEGINING: TIntegerField;

qTitleDATE_DEFENCE: TStringField;

qTitleVARIANT_N: TIntegerField;

qTitleFIRST_PART_NAME: TStringField;

qTitleSECOND_PART_NAME: TStringField;

qTitleTHIRD_PART_NAME: TStringField;

qTitleFIRST_PART_DATE: TIntegerField;

qTitleSECOND_PART_DATE: TStringField;

qTitleTHIRD_PART_DATE: TStringField;

qTitleNUMB_PAGES: TStringField;

qTitleNUMB_PICT: TStringField;

qTitleNUMB_IST: TStringField;

qPart1: TQuery;

qPart1NUMBER: TIntegerField;

qPart1PSI0: TStringField;

qPart1PSI_DOT0: TStringField;

qPart1PHI0: TStringField;

qPart1OMEGA0: TIntegerField;

qPart1POGR10_1: TIntegerField;

qPart1POGR10_2: TIntegerField;

qPart1POGR: TIntegerField;

tsPart1_TimeKin: TTabSheet;

dbgPart1_TimeKin: TDBGrid;

qPart1_TimeKin: TQuery;

updPart1_TimeKin: TUpdateSQL;

dsPart1_TimeKin: TDataSource;

qPart1_TimeKinNUMBER: TIntegerField;

qPart1_TimeKinT: TIntegerField;

qPart1_TimeKinPHI: TIntegerField;

qPart1_TimeKinPSI: TIntegerField;

qPart1_TimeKinPHI_DOT: TIntegerField;

qPart1_TimeKinPSI_DOT: TIntegerField;

qPart1_TimeKinPHI_DOT2: TIntegerField;

qPart1_TimeKinPSI_DOT2: TIntegerField;

qPart1_TimeKinV_R: TIntegerField;

qPart1_TimeDin1: TQuery;

IntegerField1: TIntegerField;

IntegerField2: TIntegerField;

updPart1_TimeDin1: TUpdateSQL;

dsPart1_TimeDin1: TDataSource;

tsPart1_TimeDin1: TTabSheet;

dbgPart1_TimeDin1: TDBGrid;

qPart1_TimeDin1M: TIntegerField;

qPart1_TimeDin1XA: TIntegerField;

qPart1_TimeDin1YA: TIntegerField;

qPart1_TimeDin1XB: TIntegerField;

qPart1_TimeDin1YB: TIntegerField;

qPart1_TimeDin1ZB: TIntegerField;

qPart1_TimeDin2: TQuery;

IntegerField3: TIntegerField;

IntegerField4: TIntegerField;

IntegerField11: TIntegerField;

IntegerField12: TIntegerField;

IntegerField13: TIntegerField;

IntegerField14: TIntegerField;

IntegerField15: TIntegerField;

IntegerField16: TIntegerField;

IntegerField17: TIntegerField;

IntegerField18: TIntegerField;

updPart1_TimeDin2: TUpdateSQL;

dsPart1_TimeDin2: TDataSource;

tsPart1_TimeDin2: TTabSheet;

dbgPart1_TimeDin2: TDBGrid;

qPart1_TimeKinPSI_RAV: TIntegerField;

dbnPart1_TimeKin: TDBNavigator;

tsGraph: TTabSheet;

dbcKoordinati: TDBChart;

dbcSkorosti: TDBChart;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TLineSeries;

Series4: TLineSeries;

bInsWork: TButton;

leNumber: TLabeledEdit;

bDelite: TButton;

tsZadanie: TTabSheet;

dbeMassa_Tochki: TDBEdit;

dbeMassa_Ramki: TDBEdit;

dbeRadius_Koltza: TDBEdit;

dbeOtklonenie_D: TDBEdit;

qZadanie: TQuery;

qZadanieNUMBER: TIntegerField;

qZadanieMASSA_TOCHKI: TIntegerField;

qZadanieMASSA_RAMKI: TIntegerField;

qZadanieRADIUS_KOLTZA: TIntegerField;

qZadanieOTKLONENIE_D: TIntegerField;

qZadanieNUMB_FREEDOMS: TIntegerField;

qZadanieLENGTH0: TIntegerField;

qZadanieZHESTKOST: TIntegerField;

qZadanieUGL_ZHESTKOST: TIntegerField;

qZadanieTYPE_SHARNIR_A: TStringField;

qZadanieTYPE_SHARNIR_B: TStringField;

qZadanieT0: TIntegerField;

qZadanieTK: TIntegerField;

qZadanieINT_POINTS_NUMBER: TIntegerField;

dbeNumb_Freedoms: TDBEdit;

dbeLenglth0: TDBEdit;

dbeZhestkost: TDBEdit;

dbeUgl_Zhestkost: TDBEdit;

dbeType_Sharnir_A: TDBEdit;

dbeType_Sharnir_B: TDBEdit;

dbeT0: TDBEdit;

dbeTK: TDBEdit;

dbeInt_Points_Number: TDBEdit;

lMassa_Tochki: TLabel;

lMassa_Ramki: TLabel;

lRadius_Koltza: TLabel;

lOtklonenie_D: TLabel;

lNumb_Freedoms: TLabel;

lLenglth0: TLabel;

lZhestkost: TLabel;

lUgl_Zhestkost: TLabel;

lType_Sharnir_A: TLabel;

lType_Sharnir_B: TLabel;

lT0: TLabel;

lTK: TLabel;

lInt_Points_Number: TLabel;

dsZadanie: TDataSource;

dbePsi0: TDBEdit;

dbePsi_Dot0: TDBEdit;

dbePhi0: TDBEdit;

dbeOmega0: TDBEdit;

dbePogr10_1: TDBEdit;

dbePogr: TDBEdit;

dbePogr10_2: TDBEdit;

lPsi0: TLabel;

lPsi_Dot0: TLabel;

lPhi0: TLabel;

lOmega0: TLabel;

lPogr10_1: TLabel;

lPogr10_2: TLabel;

lPogr: TLabel;

dsPart1: TDataSource;

tsPart2: TTabSheet;

tsPart3: TTabSheet;

qPart2: TQuery;

qPart3: TQuery;

dsPart2: TDataSource;

dsPart3: TDataSource;

dbgPart2: TDBGrid;

qPart2NUMBER: TIntegerField;

qPart2T: TIntegerField;

qPart2PSI: TIntegerField;

qPart2PHI: TIntegerField;

qPart2PSI_DOT: TIntegerField;

qPart2PHI_DOT: TIntegerField;

qPart2E_T: TIntegerField;

qPart2E_P: TIntegerField;

qPart2Q_PSI: TIntegerField;

qPart2Q_PHI: TIntegerField;

qPart2E_FULL: TIntegerField;

updPart2: TUpdateSQL;

dbnPart2: TDBNavigator;

dbeA11: TDBEdit;

dbeA22: TDBEdit;

dbeC11: TDBEdit;

dbeC22: TDBEdit;

dbePhi1: TDBEdit;

dbePsi1: TDBEdit;

dbePhi2: TDBEdit;

dbePsi2: TDBEdit;

dbeOmega_Phi: TDBEdit;

dbeOmega_Psi: TDBEdit;

dbeFaza_Phi: TDBEdit;

dbeFaza_Psi: TDBEdit;

lA11: TLabel;

lA22: TLabel;

lC11: TLabel;

lC22: TLabel;

lPhi1: TLabel;

lPsi1: TLabel;

lPhi2: TLabel;

lPsi2: TLabel;

lOmega_Phi: TLabel;

lOmega_Psi: TLabel;

lFaza_Phi: TLabel;

lFaza_Psi: TLabel;

dbeA_Phi: TDBEdit;

dbeA_Psi: TDBEdit;

dbeE_T: TDBEdit;

dbeE_P: TDBEdit;

lA_Phi: TLabel;

lA_Psi: TLabel;

lE_T: TLabel;

lE_P: TLabel;

dbeE_Full: TDBEdit;

lE_Full: TLabel;

dbeStabiliti1: TDBEdit;

dbeStabiliti2: TDBEdit;

lStabiliti1: TLabel;

lStabiliti2: TLabel;

updZadanie: TUpdateSQL;

updPart3: TUpdateSQL;

bZadModify: TButton;

bPart1Modify: TButton;

updPart1: TUpdateSQL;

bPart3Modify: TButton;

bShow: TButton;

bTitleModify: TButton;

bKinInsert: TButton;

bKinModify: TButton;

bKinDelete: TButton;

bDin1Modify: TButton;

bDin2Modify: TButton;

DBNavigator1: TDBNavigator;

dbnDin2: TDBNavigator;

bPart2Modify: TButton;

bPart2Insert: TButton;

bPart2Delete: TButton;

mMenu1: TMainMenu;

mFile: TMenuItem;

mActive: TMenuItem;

mPassive: TMenuItem;

mExit: TMenuItem;

qPart3NUMBER: TIntegerField;

qPart3A11: TIntegerField;

qPart3A22: TIntegerField;

qPart3C11: TIntegerField;

qPart3C22: TIntegerField;

qPart3PHI1: TIntegerField;

qPart3PSI1: TIntegerField;

qPart3PHI2: TIntegerField;

qPart3PSI2: TIntegerField;

qPart3STABILITI1: TIntegerField;

qPart3STABILITI2: TIntegerField;

qPart3OMEGA_PHI: TIntegerField;

qPart3OMEGA_PSI: TIntegerField;

qPart3FAZA_PHI: TIntegerField;

qPart3FAZA_PSI: TIntegerField;

qPart3A_PHI: TIntegerField;

qPart3A_PSI: TIntegerField;

qPart3E_T: TIntegerField;

qPart3E_P: TIntegerField;

qPart3E_FULL: TIntegerField;

lPogrOkr: TLabel;

XPManifest1: TXPManifest;

RvSystemMain: TRvSystem;

bRaveKin: TButton;

RvDsMain: TRvDataSetConnection;

qMainRave: TQuery;

IntegerField5: TIntegerField;

StringField1: TStringField;

StringField2: TStringField;

IntegerField6: TIntegerField;

RvMain: TRvProject;

RvKursach: TRvProject;

qPart1_Time: TQuery;

RvDsPart1: TRvDataSetConnection;

RvDsPart1_Time: TRvDataSetConnection;

RvDsTitle: TRvDataSetConnection;

RvDsZadanie: TRvDataSetConnection;

qPart1_TimeNUMBER: TIntegerField;

qPart1_TimeT: TIntegerField;

qPart1_TimePHI: TIntegerField;

qPart1_TimePSI: TIntegerField;

qPart1_TimePHI_DOT: TIntegerField;

qPart1_TimePSI_DOT: TIntegerField;

qPart1_TimePHI_DOT2: TIntegerField;

qPart1_TimePSI_DOT2: TIntegerField;

qPart1_TimeV_R: TIntegerField;

qPart1_TimeM: TIntegerField;

qPart1_TimeXA: TIntegerField;

qPart1_TimeYA: TIntegerField;

qPart1_TimeXB: TIntegerField;

qPart1_TimeYB: TIntegerField;

qPart1_TimeZB: TIntegerField;

qPart1_TimeF_UPR: TIntegerField;

qPart1_TimeN: TIntegerField;

qPart1_TimeN_B: TIntegerField;

qPart1_TimeN_N: TIntegerField;

qPart1_TimeFIN1_TZ: TIntegerField;

qPart1_TimeFIN2E_TZ: TIntegerField;

qPart1_TimeFIN2R_N: TIntegerField;

qPart1_TimeFIN2R_TAU: TIntegerField;

qPart1_TimePSI_RAV: TIntegerField;

RvDsPart2: TRvDataSetConnection;

RvDsPart3: TRvDataSetConnection;

bRaveKurs: TButton;

procedure bActiveClick(Sender: TObject);

procedure bPassiveClick(Sender: TObject);

procedure bTestClick(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure bShowClick(Sender: TObject);

procedure bInsertKinClick(Sender: TObject);

procedure bModifyKinClick(Sender: TObject);

procedure bInsWorkClick(Sender: TObject);

procedure bDeliteClick(Sender: TObject);

procedure bZadModifyClick(Sender: TObject);

procedure bPart1ModifyClick(Sender: TObject);

procedure bPart3ModifyClick(Sender: TObject);

procedure bShow1Click(Sender: TObject);

procedure bTitleModifyClick(Sender: TObject);

procedure bKinInsertClick(Sender: TObject);

procedure bKinModifyClick(Sender: TObject);

procedure bKinDeleteClick(Sender: TObject);

procedure bDin1ModifyClick(Sender: TObject);

procedure bDin2ModifyClick(Sender: TObject);

procedure bPart2ModifyClick(Sender: TObject);

procedure bPart2InsertClick(Sender: TObject);

procedure bPart2DeleteClick(Sender: TObject);

procedure mActiveClick(Sender: TObject);

procedure mPassiveClick(Sender: TObject);

procedure mExitClick(Sender: TObject);

procedure bRaveKinClick(Sender: TObject);

procedure bRaveKursClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fMain: TfMain;

implementation

{$R *.dfm}

procedure TfMain.bActiveClick(Sender: TObject);

begin

qMain.Close;

qMain.Open;

qUpdate.Close;

qUpdate.Open;

qTitle.Close;

qTitle.Open;

qPart1.Close;

qPart1.Open;

qPart1_TimeKin.Close;

qPart1_TimeKin.Open;

qPart1_TimeDin1.Close;

qPart1_TimeDin1.Open;

qPart1_TimeDin2.Close;

qPart1_TimeDin2.Open;

qZadanie.Close;

qZadanie.Open;

qPart2.Close;

qPart2.Open;

qPart3.Close;

qPart3.Open;

qMainRave.Close;

qMainRave.Open;

end;

procedure TfMain.bPassiveClick(Sender: TObject);

begin

qMain.Close;

qUpdate.Close;

qTitle.Close;

qPart1.Close;

qPart1_TimeKin.Close;

qPart1_TimeDin1.Close;

qPart1_TimeDin2.Close;

qZadanie.Close;

qPart2.Close;

qPart3.Close;

qMainRave.Close;

end;

procedure TfMain.bTestClick(Sender: TObject);

begin

qUpdate.CachedUpdates:=True;

end;

procedure TfMain.FormDestroy(Sender: TObject);

begin

qMain.Close;

qUpdate.Close;

qTitle.Close;

qPart1.Close;

qPart1_TimeKin.Close;

qPart1_TimeDin1.Close;

qPart1_TimeDin2.Close;

qZadanie.Close;

qPart2.Close;

qPart3.Close;

qMainRave.Close;

end;

procedure TfMain.bShowClick(Sender: TObject);

begin

{----------------------------- Часть первая -----------------------------------}

{ lePsi0.Text:=qPart1Psi0.AsString;

lePsi_Dot0.Text:=qPart1Psi_Dot0.AsString;

lePhi0.Text:=qPart1Phi0.AsString;

leOmega0.Text:=qPart1Omega0.AsString;

lePogr10_1.Text:=qPart1Pogr10_1.AsString;

lePogr10_2.Text:=qPart1Pogr10_2.AsString;

lePogr.Text:=qPart1Pogr.AsString; }

end;

procedure TfMain.bInsertKinClick(Sender: TObject);

begin

updPart1_TimeKin.Apply(ukInsert);

end;

procedure TfMain.bModifyKinClick(Sender: TObject);

begin

updPart1_TimeKin.Apply(ukModify);

end;

procedure TfMain.bInsWorkClick(Sender: TObject);

var

lPole,lParam: word;

N,sPole,sParam,s,p:string;

begin

sPole:='';

sParam:='';

s:=#39; p:= ' , ';

with qUpdate do begin

N:=leNumber.Text;

Sql.Clear;

{------------ Номер, Министерство, Универ, Кафедра ------------------}

sPole:=sPole+'Number, ';

sParam:=sParam+leNumber.Text+p;

sPole:=sPole+'Minist, ';

sParam:=sParam+s+leMinist.Text+s+p;

sPole:=sPole+'Univer, ';

sParam:=sParam+s+leUniver.Text+s+p;

sPole:=sPole+'Department, ';

sParam:=sParam+s+leDepartment.Text+s+p;

{-------- Фамилия, Имя Студента, Год выполения работы ---------------}

sPole:=sPole+'Student_Family, ';

sParam:=sParam+s+leStudent_Family.Text+s+p;

sPole:=sPole+'Student_Name, ';

sParam:=sParam+s+leStudent_Name.Text+s+p;

{sPole:=sPole+'Year, ';

sParam:=sParam+leYear.Text+p;

{-------------- Руководитель, Экзаменатор, Оценка -------------------}

sPole:=sPole+'Rukovod, ';

sParam:=sParam+s+leRukovod.Text+s+p;

sPole:=sPole+'Examinator, ';

sParam:=sParam+s+leExaminator.Text+s+p;

sPole:=sPole+'Mark, ';

sParam:=sParam+s+leMark.Text+s+p;

{------------------- Дата начала, Защиты, Вариант -------------------}

sPole:=sPole+'Date_Begining, ';

sParam:=sParam+s+leDate_Begining.Text+s+p;

sPole:=sPole+'Date_Defence, ';

sParam:=sParam+s+leDate_Defence.Text+s+p;

sPole:=sPole+'Variant_N, ';

sParam:=sParam+s+leVariant_N.Text+s+p;

{----------------- Имя первой, второй, третий частей ----------------}

sPole:=sPole+'First_Part_Name, ';

sParam:=sParam+s+leFirst_Part_Name.Text+s+p;

sPole:=sPole+'Second_Part_Name, ';

sParam:=sParam+s+leSecond_Part_Name.Text+s+p;

sPole:=sPole+'Third_Part_Name, ';

sParam:=sParam+s+leFirst_Part_Name.Text+s+p;

{----------------- Дата первой, второй, третий частей ---------------}

sPole:=sPole+'First_Part_Date, ';

sParam:=sParam+s+leFirst_Part_Date.Text+s+p;

sPole:=sPole+'Second_Part_Date, ';

sParam:=sParam+s+leSecond_Part_Date.Text+s+p;

sPole:=sPole+'Third_Part_Date, ';

sParam:=sParam+s+leFirst_Part_Date.Text+s+p;

{------------ Количество источников, страниц, картинок --------------}

sPole:=sPole+'Numb_Pages, ';

sParam:=sParam+s+leNumb_Pages.Text+s+p;

sPole:=sPole+'Numb_Pict, ';

sParam:=sParam+s+leNumb_Pict.Text+s+p;

sPole:=sPole+'Numb_Ist, ';

sParam:=sParam+s+leNumb_Ist.Text+s+p;

{--------------------- Подготовка запроса ---------------------------}

lPole:=length(sPole);

lParam:=length(sParam);

sPole:=copy(sPole,1,lPole-2);

sParam:=copy(sParam,1,lParam-3);

{------------- Формирование, выполение запроса ----------------------}

Sql.Add('Insert into Title ('+sPole+') values ('+sParam+')');

Close;

ExecSql;

Sql.Clear;

Sql.Add('select * from title where (NUMBER= :NUMBER)');

Open;

{------------- Вставка строки в остальные таблицы -------------------}

Sql.Clear;

Sql.Add('Insert into Zadanie (Number) values ('+N+')');

Close;

ExecSql;

Sql.Clear;

Sql.Add('Insert into Part1 (Number) values ('+N+')');

Close;

ExecSql;

Sql.Clear;

Sql.Add('Insert into Part3 (Number) values ('+N+')');

Close;

ExecSql;

Sql.Clear;

Sql.Add('select * from title where (NUMBER= :NUMBER)');

Open;

end;

end;

procedure TfMain.bDeliteClick(Sender: TObject);

var

N: word;

begin

with qUpdate do begin

N:=qMainNumber.AsInteger;

Sql.Clear;

Sql.Add('Delete from Title Where Number= '+IntToStr(N));

Close;

ExecSql;

Sql.Clear;

Sql.Add('Delete from Zadanie Where Number= '+IntToStr(N));

Close;

ExecSql;

Sql.Clear;

Sql.Add('Delete from Part1 Where Number= '+IntToStr(N));

Close;

ExecSql;

Sql.Clear;

Sql.Add('Delete from Part1_Time Where Number= '+IntToStr(N));

Close;

ExecSql;

Sql.Clear;

Sql.Add('Delete from Part2 Where Number= '+IntToStr(N));

Close;

ExecSql;

Sql.Clear;

Sql.Add('Delete from Part3 Where Number= '+IntToStr(N));

Close;

ExecSql;

Sql.Clear;

Sql.Add('select * from title where (NUMBER= :NUMBER)');

end;

end;

procedure TfMain.bZadModifyClick(Sender: TObject);

begin

updZadanie.Apply(ukModify);

end;

procedure TfMain.bPart1ModifyClick(Sender: TObject);

begin

updPart1.Apply(ukModify);

end;

procedure TfMain.bPart3ModifyClick(Sender: TObject);

begin

updPart3.Apply(ukModify);

end;

procedure TfMain.bShow1Click(Sender: TObject);

begin

{--------------------- Закладка общие данные ----------------------------------}

leMinist.Text:=qTitleMinist.AsString;

leUniver.Text:=qTitleUniver.AsString;

leDepartment.Text:=qTitleDepartment.AsString;

leStudent_Family.Text:=qTitleStudent_Family.AsString;

leStudent_Name.Text:=qTitleStudent_Name.AsString;

leYear.Text:=qTitleYear.AsString;

leRukovod.Text:=qTitleRukovod.AsString;

leExaminator.Text:=qTitleExaminator.AsString;

leMark.Text:=qTitleMark.AsString;

leDate_Begining.Text:=qTitleDate_Begining.AsString;

leDate_Defence.Text:=qTitleDate_Defence.AsString;

leVariant_N.Text:=qTitleVariant_N.AsString;

leFirst_Part_Name.Text:=qTitleFirst_Part_Name.AsString;

leSecond_Part_Name.Text:=qTitleSecond_Part_Name.AsString;

leThird_Part_Name.Text:=qTitleThird_Part_Name.AsString;

leFirst_Part_Date.Text:=qTitleFirst_Part_Date.AsString;

leSecond_Part_Date.Text:=qTitleSecond_Part_Date.AsString;

leThird_Part_Date.Text:=qTitleThird_Part_Date.AsString;

leNumb_Pages.Text:=qTitleNumb_Pages.AsString;

leNumb_Pict.Text:=qTitleNumb_Pict.AsString;

leNumb_Ist.Text:=qTitleNumb_Ist.AsString;

leNumber.Text:=qTitleNumber.AsString;

end;

procedure TfMain.bTitleModifyClick(Sender: TObject);

var

k,m,l:integer;

N: word;

sSql,s,p:string;

begin

// sSql:='Minist= '+leMinist.Text;

sSql:='Update Title SET ';

s:=#39;

p:=' , ';

k:=0; m:=0;

{------------------------Министерство, вуз, кафедра----------------------------}

if qTitleMinist.AsString<>leMinist.Text

then begin

sSql:=sSql+' Minist= '+s+leMinist.Text+s+p;

k:=k+1;

end;

if qTitleUniver.AsString<>leUniver.Text

then begin

sSql:=sSql+' Univer= '+s+leUniver.Text+s+p;

k:=k+1;

end;

if qTitleDepartment.AsString<>leDepartment.Text

then begin

sSql:=sSql+' Department= '+s+leDepartment.Text+s+p;

k:=k+1;

end;

{----------------------- Студент, год работы ----------------------------------}

if qTitleStudent_Family.AsString<>leStudent_Family.Text

then begin

sSql:=sSql+' Student_Family= '+s+leStudent_Family.Text+s+p;

k:=k+1;

end;

if qTitleStudent_Name.AsString<>leStudent_Name.Text

then begin

sSql:=sSql+' Student_Name= '+s+leStudent_Name.Text+s+p;

k:=k+1;

end;

if qTitleYear.AsString<>leYear.Text

then begin

sSql:=sSql+' Year= '+s+leYear.Text+s+p;

k:=k+1;

end;

{ if qTitleYear.AsString<>leYear.Text

then begin

sSql:=sSql+' Year= '+s+leYear.Text+s+p;

k:=k+1;

end;

{------------------- Руководитель, экзаминатор, оценка ------------------------}

if qTitleRukovod.AsString<>leRukovod.Text

then begin

sSql:=sSql+' Rukovod= '+s+leRukovod.Text+s+p;

k:=k+1;

end;

if qTitleExaminator.AsString<>leExaminator.Text

then begin

sSql:=sSql+' Examinator= '+s+leExaminator.Text+s+p;

k:=k+1;

end;

if qTitleMark.AsString<>leMark.Text

then begin

sSql:=sSql+' Mark= '+s+leMark.Text+s+p;

k:=k+1;

end;

{------------------- Дата начала, защиты, вариант -----------------------------}

if qTitleDate_Begining.AsString<>leDate_Begining.Text

then begin

sSql:=sSql+' Date_Begining= '+s+leDate_Begining.Text+s+p;

k:=k+1;

end;

if qTitleDate_Defence.AsString<>leDate_Defence.Text

then begin

sSql:=sSql+' Date_Defence= '+s+leDate_Defence.Text+s+p;

k:=k+1;

end;

if qTitleVariant_N.AsString<>leVariant_N.Text

then begin

sSql:=sSql+' Variant_N= '+s+leVariant_N.Text+s+p;

k:=k+1;

end;

{--------------------------- Имена частей -------------------------------------}

if qTitleFirst_Part_Name.AsString<>leFirst_Part_Name.Text

then begin

sSql:=sSql+' First_Part_Name= '+s+leFirst_Part_Name.Text+s+p;

k:=k+1;

end;

if qTitleSecond_Part_Name.AsString<>leSecond_Part_Name.Text

then begin

sSql:=sSql+' Second_Part_Name= '+s+leSecond_Part_Name.Text+s+p;

k:=k+1;

end;

if qTitleThird_Part_Name.AsString<>leThird_Part_Name.Text

then begin

sSql:=sSql+' Third_Part_Name= '+s+leThird_Part_Name.Text+s+p;

k:=k+1;

end;

{---------------------------- Даты сдачи частей -------------------------------}

if qTitleFirst_Part_Date.AsString<>leFirst_Part_Date.Text

then begin

sSql:=sSql+' First_Part_Date= '+s+leFirst_Part_Date.Text+s+p;

k:=k+1;

end;

if qTitleSecond_Part_Date.AsString<>leSecond_Part_Date.Text

then begin

sSql:=sSql+' Second_Part_Date= '+s+leSecond_Part_Date.Text+s+p;

k:=k+1;

end;

if qTitleThird_Part_Date.AsString<>leThird_Part_Date.Text

then begin

sSql:=sSql+' Third_Part_Date= '+s+leThird_Part_Date.Text+s+p;

k:=k+1;

end;

{---------------------- Страницы, источники, иллюстрации ----------------------}

if qTitleNumb_Pages.AsString<>leNumb_Pages.Text

then begin

sSql:=sSql+' Numb_Pages= '+s+leNumb_Pages.Text+s+p;

k:=k+1;

end;

if qTitleNumb_Pict.AsString<>leNumb_Pict.Text

then begin

sSql:=sSql+' Numb_Pict= '+s+leNumb_Pict.Text+s+p;

k:=k+1;

end;

if qTitleNumb_Ist.AsString<>leNumb_Ist.Text

then begin

sSql:=sSql+' Numb_Ist= '+s+leNumb_Ist.Text+s+p;

k:=k+1;

end;

{----------------------- Генерация запроса ------------------------------------}

l:=length(sSql);

sSql:=Copy(sSql,1,l-3);

if k<>0 then

with qUpdate do begin

N:=qTitleNumber.AsInteger;

Sql.Clear;

Sql.Add(sSql+' Where Number = '+IntToStr(N));

Close;

ExecSql;

Sql.Clear;

Sql.Add('Select * from title');

end;

end;

procedure TfMain.bKinInsertClick(Sender: TObject);

begin

updPart1_TimeKin.Apply(ukInsert);

end;

procedure TfMain.bKinModifyClick(Sender: TObject);

begin

updPart1_TimeKin.Apply(ukModify);

end;

procedure TfMain.bKinDeleteClick(Sender: TObject);

var

N,Time:integer;

begin

with qUpdate do begin

N:=qMainNumber.AsInteger;

Time:=qPart1_TimeKinT.AsInteger;

Sql.Clear;

Sql.Add('Delete from Part1_Time Where Number= '+IntToStr(N)+' and t= '+IntToStr(Time));

Close;

ExecSql;

Sql.Clear;

Sql.Add('select * from title where (NUMBER= :NUMBER)');

end;

end;

procedure TfMain.bDin1ModifyClick(Sender: TObject);

begin

updPart1_TimeDin1.Apply(ukModify);

end;

procedure TfMain.bDin2ModifyClick(Sender: TObject);

begin

updPart1_TimeDin2.Apply(ukModify);

end;

procedure TfMain.bPart2ModifyClick(Sender: TObject);

begin

updPart2.Apply(ukModify);

end;

procedure TfMain.bPart2InsertClick(Sender: TObject);

begin

updPart2.Apply(ukInsert);

end;

procedure TfMain.bPart2DeleteClick(Sender: TObject);

var

N,Time:integer;

begin

with qUpdate do begin

N:=qMainNumber.AsInteger;

Time:=qPart2T.AsInteger;

Sql.Clear;

Sql.Add('Delete from Part2 Where Number= '+IntToStr(N)+' and t= '+IntToStr(Time));

Close;

ExecSql;

Sql.Clear;

Sql.Add('select * from title where (NUMBER= :NUMBER)');

end;

end;

procedure TfMain.mActiveClick(Sender: TObject);

begin

qMain.Close;

qMain.Open;

qUpdate.Close;

qUpdate.Open;

qTitle.Close;

qTitle.Open;

qPart1.Close;

qPart1.Open;

qPart1_TimeKin.Close;

qPart1_TimeKin.Open;

qPart1_TimeDin1.Close;

qPart1_TimeDin1.Open;

qPart1_TimeDin2.Close;

qPart1_TimeDin2.Open;

qZadanie.Close;

qZadanie.Open;

qPart2.Close;

qPart2.Open;

qPart3.Close;

qPart3.Open;

end;

procedure TfMain.mPassiveClick(Sender: TObject);

begin

qMain.Close;

qUpdate.Close;

qTitle.Close;

qPart1.Close;

qPart1_TimeKin.Close;

qPart1_TimeDin1.Close;

qPart1_TimeDin2.Close;

qZadanie.Close;

qPart2.Close;

qPart3.Close;

end;

procedure TfMain.mExitClick(Sender: TObject);

begin

fMain.Close;

end;

procedure TfMain.bRaveKinClick(Sender: TObject);

begin

RvMain.Execute;

end;

procedure TfMain.bRaveKursClick(Sender: TObject);

begin

RvKursach.Execute;

end;

end.