. , , ,

,,,

N1 . — ,

1

: .

: . .

: ..

1998.

4

5

6

1.    

6

1.1.

8

1.1.1.             

9

1.1.2.             

11

1.1.3.             

13

1.1.4.             

14

1.2.        

15

1.3.        

16

2.     . .

21

2.1.        

22

2.1.1.             

22

2.1.2.             

22

2.1.3.             

23

2.1.4.             

24

2.1.5.             

27

2.2.        

29

3.     . , , . .

31

3.1.         ,

33

3.1.1.             

33

3.1.2.             

34

3.1.3.             

35

3.2.        

35

3.2.1.             

35

3.2.2.             

37

3.2.3.             

37

3.3.

38

3.3.1.

38

3.3.2. 

40

3.3.3. 

41

3.3.4. 

41

41

4.              .

43

4.1.        

44

4.1.1. 

44

4.1.2.     

45

4.1.3.  ,

45

4.1.4.  ,

46

5.       .

48

6.       Delphi

48

7.      

56

8.       廻

58

9.      

62

10. 

63

12. 1

64

13. 2 廻

65


. . , . 1991 , . , . , . , . . 1996 - 1. - . , , . .


.

. Delphi Inprise. .


. , . - , . , , , .

, , . , , / , . , , , . , , .. ͻ.

, . , . , , . . : . , . ( ) , .

, . ( ) , , .

, , , . , . .

, , . , , , .

. , , - ( ). . , .

1.1.

. - , . , , , , , . , .

IBM 360. , . , , - , . , OS/360 , , , . . , IBM.

1.1.1.

. . , , . (), . , . "" , , . ( , ) , . , , , , .

. . -, : , . . . -, , , , .

, , . , .

, , . . , , , DEC RSX VMS, . - . . . . , ( , ) , , . B-. .

, UNIX, , . , . , , . , , UNIX, .

, , . DEC.

1.1.2.

. - . / , . , , . , .

. , ( ) ( , , ). , . DEC, . .

Multics. , , . Miltics . , - . , , . .

, : . , - . UNIX. . . "" . . UNIX . , . , , UNIX .

1.1.3.

, , , , . , , . . , .

, UNIX. : , , . , , , , , , . , , .

1.1.4.

, , - . , , . , . , .

. ( , ) ( ). A B ( "", ), ( ), A , , B .

, UNIX . , . ( UNIX ). UNIX . , , . .

1.2.

. , , : , .. . : , , , (, ).

, , . , - . . , , .

, . - . , .

, , . , , , .

1.3.

. , . , , . . ( ), , , ..

, . , , , , . , , .

. , , . : , , . , , .. , , .

, , . , , . ? (_), (_), ( , "" "") (_), (_), (__). , (__).

, ( ) _ _. , __, . , , .

, , -, , , -, ( ) . , , , , , , , _.

, , - : . _, _, _, _ __, - _, _, __ ( ) _ ( ). , , . , . , , .

, , ( ), (, __ _ ), , , . , , , _ _ , .

. , ( , ) , , . , , . : () , .

, . -, " , ". , . . , SQL :

SELECT _

FROM ,

WHERE _ = " "

AND __ = _

, , . , _ , _ - , . , ,

SELECT _, _

FROM

WHERE _ = "",

, _ .

, , , , . , , . , . ( ) . . .

, , (, ) . , ( ). , , . .

, , . , ; , , , , .

. .

, . , : ; ; ; . , , , ().

2.1.

, :

2.1.1.

, , , , ( ). , . , , , , . , .

2.1.2.

; . , , . . , ( UNIX), , . .

, , . , , . .

2.1.3.

- , . , (COMMIT) , , , . . , . , (, , ). .

, , . ( , , ).

. , . - , . , , , , ( ).

. , . . ( , ) . , ( ) .

2.1.4.

. , . : , (, ), , . : ( ) , . ; .

, . , , , , . .

- , ( , ), . : (, ), - ; .

"" ( Write Ahead Log - WAL). , , , . , WAL, .

- . , . , , , . , , , ( ).

, , , , , ( , ). WAL , . , . , , (undo), (redo) , . , . .

. , - ( ). , , . , . , , . , . , .

2.1.5.

, . . - (SDL - Schema Definition Language) (DML - Data Manipulation Language). SDL , .. , . DML , .. , , , . .

, , , . SQL (Structured Query Language). SQL , , "" (.. , SQL).

, SQL SDL DML, .. . ( - ) , SQL -. () .

SQL . , -, , .. SQL .

SQL , ( ) . , , , . .

, SQL. , SQL . , , . , . -, .

SQL , SQL .

2.2.

, . , :

        ;

        ;

        ;

        ;

        .

- ( Data Base Engine), ( SQL), , . , - , .

, , . , ( , , ), , , . , , . , , SQL ( ) . . "-" .

. , ( , , SQL) , .. , , ( ). , , . , . , , - . , , , .

, , , , , , .. , .

. , , . .

, , () . : -, , - ; -, ; -, .

, , , , , . - ; , , , . .

:

a.     , , - . , , .

b.     - . , . .

c.      . , , . .

d.     , , . , APL.

e.      , - .

f.       "" . - , .

3.1. ,

Datacom/DB Applied Data Research, Inc. (ADR), IBM, Adabas Software AG.

, (). , , , , .

3.1.1.

, , , , . :

a.     .

b.     ( , , Datacom/DB).

c.      , . , .

3.1.2.

:

a.     , , :

        (, );

        , .

:

        LOCATE FIRST - T ; ;

        LOCATE FIRST WITH SEARCH KEY EQUAL - T K; ;

        LOCATE NEXT - , ; ;

        LOCATE NEXT WITH SEARCH KEY EQUAL - T K; K; ;

        LOCATE FIRST WITH SEARCH KEY GREATER - T K c , K; ;

        RETRIVE - ;

        UPDATE - ;

        DELETE - ;

        STORE - ; .

3.1.3.

. , .

3.2.

( ) Information Management System (IMS) IBM. 1968 . , , .

3.2.1.

; , .

"" ( ). .

( ):


, - . .

( ):


. - -, -.

IMS : "" "", " " .

3.2.2.

:

        (, 310);

        ;

        (, - );

        ;

        ;

        .

3.2.3.

. : . , , , ( "" _ ).



.

3.3.

Integrated Database Management System (IDMS) Cullinet Software, Inc., IBM . Data Base Task Group (DBTG) Conference on Data Systems Languages (CODASYL), , . DBTG 1971 ., 70- , IDMS.

3.3.1.

. - ; .

, , .

: . . L P C :

        P L;

        C , L.

; , , :

a.     L1 L2 ( ).

b.     P .

c.      P .

d.     ; L1 L2 - P C, , , .

e.      X Y - .

f.       .


:

3.3.2.

:

        ( );

        ( 310);

        ( );

        ( );

        ;

        ;

        ;

        ;

        ;

        ..

3.3.3.

, ( ).

3.4.

:

        ;

        ;

        ( ).

:

        ;

        ;

        ;

        .

. , . :

        , , ;

        , ;

        .

. , 70-, , . , 80- .

, ( ) ( ), . . , . .

.

, . . ,


4.1.

, , , , .


, :

4.1.1.

. , , , ( ""), "" (, , ). ( , , Ingres/Postgres). : , "".

4.1.2.

, . , , , . "", .

. , "" , , ( , ).

: , . " " " " , . , , Oracle V.7 .

4.1.3. ,

- { , ( , )}. "" - . , 4-. , ( , , , ).

( ) - .

4.1.4. ,

, , - { , }, , . "" ( , ). , "" , .. , "" . , - .

- , . , , "-" "-", , - . , . , .

. -. -. . : . .

, , - -; . " ", " ". , . .

- , .

, ( ) , .


, .

Delphi.


Delphi

Borland - , . Delphi , , , " ". Delphi - CASE- , " " - IDE. Delphi , "" .

" " -

, Delphi . ?

Delphi - Object Pascal, Pascal - Turbo Pascal Borland Pascal. , Pascal Borland , . "" Pascal, , :

        , (Turbo Pascal 4.0);

        , , - , (Turbo Pascal 5.5);

        RTTI (Run-Time Type Information), () () , (Delphi 1.0 - Object Pascal);

RTTI , Delphi. Delphi TPersistent, / ( ). TComponent, Delphi VCL (Visual Component Library) design-time ( "" ). VCL - , (Components Palette) IDE Delphi.
, , , , , VCL .


, (Windows DLL) (VBX Delphi 1.0 OCX - 32- Delphi) Delphi (, C++) , , .
Delphi .

- IDE


, ( design- time), (Object Inspector).

. 1

, . , - ( : 1) " " TDataSet - , , ; , design-time , , - ; 2) , ).


Delphi , VCL, .

. 2

( 20) , , / , -, . .
design-time, Delphi.


. 3

-

, , , , - .

, Delphi (, DataBase Form Expert, ), , IDE.
, , , IDE, . , "" , IDE, , . ( , Delphi IDE; ; "Help", "" Delphi).


. 4

IDE- , , Delphi.


-


IDE, Delphi - , , CASE- ..

. 5

, , , Delphi (, , CASE-, Object Pascal, IDE). Popkin Software ( CASE- System Architect), Delphi 1995 . - Intersolv PVCS MKS Source Integrity, Delphi (32- PVCS Delphi Client/Server Suite 2.0, , , ( Novell Tuxedo .).


, Delphi.

Delphi .


, Delphi. :


. 6

Delphi, ( ) VCL ( 200 1995.) (external-site interface).


.

.

1)    . .

2)    .

3)    .

4)    .

, .

. . . , . , . , . . . . .

Delphi. 8 .

1.  .

2.  -.

3.  .

4.  .

5.  .

6.  -.

7.  .

8.  .

. . - . - ( ) . - .



, . .

(. 1).


. 1

, .

, . .


. 2

. 2 .


. 3

, .


.

1 . . 1.0 唠 Delphi 3.0. , . ..


1.     .. ,

http://www.citforum.ru/database/osbd/contents.shtml

2.     . , " ", , 1980.

3.     " DB2", , 1988.

4.     . " ", , 1983.

5.     6- Borland.

6.     (1998 ): Delphi Informant, Delphi Developer, Microsoft System Journal, Dr. Dobb Journal, - .

7.     WWW-: Borland, Miller Friman, Turbo Power, ProtoView, Popkin Software, InterSolv, AOL .

8.     "Delphi Developers Guide", S.Tiexeira & X. Pacheco, SAMS Publishing / Borland PRESS.

9.     "Delphi Only Tools" ZAC Catalog, "Delphi Power Tools" Informant Communications Group.


1

: 05.13.16 ࠠ

: .

: .

: .. ..., , , , , ..

 

: 01.01.98 : 04.06.98

 

.

1. .

2. .

3. :

     .

     唠

4. .

5. .

6. .

.

1.     .

2.     .

.

1.       "Delphi Developers Guide", S.Tiexeira & X. Pacheco, SAMS Publishing / Borland PRESS.

2.       . " " ( , 1983).

:

: . .

: . .

. : . .


2

Main.pas

unit Main;

interface

uses

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

ExtCtrls, ComCtrls, StdCtrls, Buttons, ToolWin, Grids, DBGrids, DBCtrls;

type

TFrmMain = class(TForm)

Panel1: TPanel;

ToolBar1: TToolBar;

BitBtn1: TBitBtn;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

TabSheet7: TTabSheet;

TabSheet8: TTabSheet;

TabSheet9: TTabSheet;

Panel2: TPanel;

DBGrid1: TDBGrid;

PageControl2: TPageControl;

TabSheet10: TTabSheet;

TabSheet11: TTabSheet;

TabSheet12: TTabSheet;

TabSheet13: TTabSheet;

DBMemo1: TDBMemo;

DBMemo2: TDBMemo;

DBMemo3: TDBMemo;

DBMemo4: TDBMemo;

DBGrid2: TDBGrid;

Panel3: TPanel;

DBNavigator1: TDBNavigator;

Panel4: TPanel;

DBNavigator2: TDBNavigator;

Panel5: TPanel;

Panel6: TPanel;

Panel7: TPanel;

Panel8: TPanel;

Panel9: TPanel;

Panel10: TPanel;

Panel11: TPanel;

Panel12: TPanel;

EditDS: TEdit;

BitBtn2: TBitBtn;

BtnSAVE: TBitBtn;

Panel13: TPanel;

DBNavigator3: TDBNavigator;

DBGrid3: TDBGrid;

BitBtn3: TBitBtn;

Panel14: TPanel;

Panel15: TPanel;

DBNavigator4: TDBNavigator;

DBGrid4: TDBGrid;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BtnSAVEENTER: TBitBtn;

EditENTER: TEdit;

Panel16: TPanel;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

BtnSAVEENTER2: TBitBtn;

EditENTER2: TEdit;

Panel17: TPanel;

DBNavigator5: TDBNavigator;

DBGrid5: TDBGrid;

Panel18: TPanel;

BitBtn8: TBitBtn;

BitBtn9: TBitBtn;

BtnSAVEPERSONAL: TBitBtn;

Panel19: TPanel;

DBNavigator6: TDBNavigator;

EditPERSONAL: TEdit;

DBGrid6: TDBGrid;

Panel20: TPanel;

BitBtn10: TBitBtn;

BitBtn11: TBitBtn;

BtnSAVEPTYPE: TBitBtn;

EditPTYPE: TEdit;

Panel21: TPanel;

DBNavigator7: TDBNavigator;

DBGrid7: TDBGrid;

Panel22: TPanel;

BitBtn12: TBitBtn;

BitBtn13: TBitBtn;

BtnSAVESTREET: TBitBtn;

EditSTREET: TEdit;

Panel23: TPanel;

DBNavigator8: TDBNavigator;

DBGrid8: TDBGrid;

Panel24: TPanel;

BitBtn14: TBitBtn;

BitBtn15: TBitBtn;

BtnSAVEVILLAGE: TBitBtn;

EditVILLAGE: TEdit;

Panel25: TPanel;

DBNavigator9: TDBNavigator;

DBGrid9: TDBGrid;

procedure EditDSChange(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BtnSAVEClick(Sender: TObject);

procedure EditDSClick(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BtnSAVEENTERClick(Sender: TObject);

procedure EditENTERChange(Sender: TObject);

procedure EditENTERClick(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BtnSAVEENTER2Click(Sender: TObject);

procedure EditENTER2Change(Sender: TObject);

procedure EditENTER2Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

procedure BitBtn9Click(Sender: TObject);

procedure BtnSAVEPERSONALClick(Sender: TObject);

procedure EditPERSONALChange(Sender: TObject);

procedure EditPERSONALKeyPress(Sender: TObject; var Key: Char);

procedure BitBtn10Click(Sender: TObject);

procedure BitBtn11Click(Sender: TObject);

procedure BtnSAVEPTYPEClick(Sender: TObject);

procedure EditPTYPEChange(Sender: TObject);

procedure EditPTYPEKeyPress(Sender: TObject; var Key: Char);

procedure BitBtn12Click(Sender: TObject);

procedure BitBtn13Click(Sender: TObject);

procedure BtnSAVESTREETClick(Sender: TObject);

procedure EditSTREETChange(Sender: TObject);

procedure EditSTREETKeyPress(Sender: TObject; var Key: Char);

procedure BitBtn14Click(Sender: TObject);

procedure BitBtn15Click(Sender: TObject);

procedure BtnSAVEVILLAGEClick(Sender: TObject);

procedure EditVILLAGEChange(Sender: TObject);

procedure EditVILLAGEKeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmMain: TFrmMain;

implementation

uses AdminDM, DB;

{$R *.DFM}

procedure TFrmMain.EditDSChange(Sender: TObject);

begin

With DMAdmin do

begin

TblDS.Locate('TITLE', EditDS.Text, [loPartialKey]);

if (TblDSTITLE.Value <> EditDS.Text) and

(EditDS.Text <> '')

then

BtnSAVE.Enabled := True

else

BtnSAVE.Enabled := False;

TblDS.Locate('TITLE', EditDS.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.BitBtn2Click(Sender: TObject);

begin

EditDS.Enabled := True;

EditDS.SetFocus;

end;

procedure TFrmMain.BtnSAVEClick(Sender: TObject);

begin

DMAdmin.TblDS.Insert;

DMAdmin.TblDSCODE.Value := DMAdmin.TblDS.RecordCount;

DMAdmin.TblDSTITLE.Value := EditDS.Text;

DMAdmin.TblDS.Post;

DMAdmin.TblDS.Refresh;

EditDS.Text := '';

EditDS.Enabled := False;

BtnSAVE.Enabled := False;

end;

procedure TFrmMain.EditDSClick(Sender: TObject);

begin

With DMAdmin do

begin

TblDS.Locate('TITLE', EditDS.Text, [loPartialKey]);

if (TblDSTITLE.Value <> EditDS.Text) and

(EditDS.Text <> '')

then

BtnSAVE.Enabled := True

else

BtnSAVE.Enabled := False;

TblDS.Locate('TITLE', EditDS.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.BitBtn4Click(Sender: TObject);

begin

EditENTER.Enabled := True;

EditENTER.SetFocus;

end;

procedure TFrmMain.BitBtn3Click(Sender: TObject);

begin

EditDS.Text := '';

EditDS.Enabled := False;

BtnSAVE.Enabled := False;

end;

procedure TFrmMain.BitBtn5Click(Sender: TObject);

begin

EditENTER.Text := '';

EditENTER.Enabled := False;

BtnSAVEENTER.Enabled := False;

end;

procedure TFrmMain.BtnSAVEENTERClick(Sender: TObject);

begin

DMAdmin.TblENTERA.Insert;

DMAdmin.TblENTERACODE.Value := DMAdmin.TblENTERA.RecordCount;

DMAdmin.TblENTERATITLE.Value := EditENTER.Text;

DMAdmin.TblENTERA.Post;

DMAdmin.TblENTERA.Refresh;

EditENTER.Text := '';

EditENTER.Enabled := False;

BtnSAVEENTER.Enabled := False;

end;

procedure TFrmMain.EditENTERChange(Sender: TObject);

begin

With DMAdmin do

begin

TblENTERA.Locate('TITLE', EditENTER.Text, [loPartialKey]);

if (TblENTERATITLE.Value <> EditENTER.Text) and

(EditENTER.Text <> '')

then

BtnSAVEENTER.Enabled := True

else

BtnSAVEENTER.Enabled := False;

TblENTERA.Locate('TITLE', EditENTER.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.EditENTERClick(Sender: TObject);

begin

With DMAdmin do

begin

TblENTERA.Locate('TITLE', EditENTER.Text, [loPartialKey]);

if (TblENTERTITLE.Value <> EditENTER.Text) and

(EditENTER.Text <> '')

then

BtnSAVEENTER.Enabled := True

else

BtnSAVEENTER.Enabled := False;

TblENTERA.Locate('TITLE', EditENTER.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.BitBtn6Click(Sender: TObject);

begin

EditENTER2.Enabled := True;

EditENTER2.SetFocus;

end;

procedure TFrmMain.BitBtn7Click(Sender: TObject);

begin

EditENTER2.Text := '';

EditENTER2.Enabled := False;

BtnSAVEENTER2.Enabled := False;

end;

procedure TFrmMain.BtnSAVEENTER2Click(Sender: TObject);

begin

DMAdmin.TblENTER2A.Insert;

DMAdmin.TblENTER2ACODE.Value := DMAdmin.TblENTER2A.RecordCount;

DMAdmin.TblENTER2ATITLE.Value := EditENTER2.Text;

DMAdmin.TblENTER2A.Post;

DMAdmin.TblENTER2A.Refresh;

EditENTER2.Text := '';

EditENTER2.Enabled := False;

BtnSAVEENTER2.Enabled := False;

end;

procedure TFrmMain.EditENTER2Change(Sender: TObject);

begin

With DMAdmin do

begin

TblENTER2A.Locate('TITLE', EditENTER2.Text, [loPartialKey]);

if (TblENTER2ATITLE.Value <> EditENTER2.Text) and

(EditENTER2.Text <> '')

then

BtnSAVEENTER2.Enabled := True

else

BtnSAVEENTER2.Enabled := False;

TblENTER2A.Locate('TITLE', EditENTER2.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.EditENTER2Click(Sender: TObject);

begin

With DMAdmin do

begin

TblENTER2A.Locate('TITLE', EditENTER2.Text, [loPartialKey]);

if (TblENTER2TITLE.Value <> EditENTER2.Text) and

(EditENTER2.Text <> '')

then

BtnSAVEENTER2.Enabled := True

else

BtnSAVEENTER2.Enabled := False;

TblENTER2A.Locate('TITLE', EditENTER2.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.BitBtn8Click(Sender: TObject);

begin

EditPERSONAL.Enabled := True;

EditPERSONAL.SetFocus;

end;

procedure TFrmMain.BitBtn9Click(Sender: TObject);

begin

EditPERSONAL.Text := '';

EditPERSONAL.Enabled := False;

BtnSAVEPERSONAL.Enabled := False;

end;

procedure TFrmMain.BtnSAVEPERSONALClick(Sender: TObject);

begin

DMAdmin.TblPERSONAL.Insert;

DMAdmin.TblPERSONALID.Value := DMAdmin.TblPERSONAL.RecordCount + 1;

DMAdmin.TblPERSONALFIO.Value := EditPERSONAL.Text;

DMAdmin.TblPERSONAL.Post;

DMAdmin.TblPERSONAL.Refresh;

EditPERSONAL.Text := '';

EditPERSONAL.Enabled := False;

BtnSAVEPERSONAL.Enabled := False;

end;

procedure TFrmMain.EditPERSONALChange(Sender: TObject);

begin

With DMAdmin do

begin

TblPERSONAL.Locate('FIO', EditPERSONAL.Text, [loPartialKey]);

if (TblPERSONALFIO.Value <> EditPERSONAL.Text) and

(EditPERSONAL.Text <> '')

then

BtnSAVEPERSONAL.Enabled := True

else

BtnSAVEPERSONAL.Enabled := False;

TblPERSONAL.Locate('FIO', EditPERSONAL.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.EditPERSONALKeyPress(Sender: TObject; var Key: Char);

begin

With DMAdmin do

begin

TblPERSONAL.Locate('FIO', EditPERSONAL.Text, [loPartialKey]);

if (TblPERSONALFIO.Value <> EditPERSONAL.Text) and

(EditPERSONAL.Text <> '')

then

BtnSAVEPERSONAL.Enabled := True

else

BtnSAVEPERSONAL.Enabled := False;

TblPERSONAL.Locate('FIO', EditPERSONAL.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.BitBtn10Click(Sender: TObject);

begin

EditPTYPE.Enabled := True;

EditPTYPE.SetFocus;

end;

procedure TFrmMain.BitBtn11Click(Sender: TObject);

begin

EditPTYPE.Text := '';

EditPTYPE.Enabled := False;

BtnSAVEPTYPE.Enabled := False;

end;

procedure TFrmMain.BtnSAVEPTYPEClick(Sender: TObject);

begin

DMAdmin.TblPTYPE.Insert;

DMAdmin.TblPTYPECODE.Value := DMAdmin.TblPTYPE.RecordCount + 1;

DMAdmin.TblPTYPETITLE.Value := EditPTYPE.Text;

DMAdmin.TblPTYPE.Post;

DMAdmin.TblPTYPE.Refresh;

EditPTYPE.Text := '';

EditPTYPE.Enabled := False;

BtnSAVEPTYPE.Enabled := False;

end;

procedure TFrmMain.EditPTYPEChange(Sender: TObject);

begin

With DMAdmin do

begin

TblPTYPE.Locate('TITLE', EditPTYPE.Text, [loPartialKey]);

if (TblPTYPETITLE.Value <> EditPTYPE.Text) and

(EditPTYPE.Text <> '')

then

BtnSAVEPTYPE.Enabled := True

else

BtnSAVEPTYPE.Enabled := False;

TblPTYPE.Locate('TITLE', EditPTYPE.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.EditPTYPEKeyPress(Sender: TObject; var Key: Char);

begin

With DMAdmin do

begin

TblPTYPE.Locate('TITLE', EditPTYPE.Text, [loPartialKey]);

if (TblPTYPETITLE.Value <> EditPTYPE.Text) and

(EditPTYPE.Text <> '')

then

BtnSAVEPTYPE.Enabled := True

else

BtnSAVEPTYPE.Enabled := False;

TblPTYPE.Locate('TITLE', EditPTYPE.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.BitBtn12Click(Sender: TObject);

begin

EditSTREET.Enabled := True;

EditSTREET.SetFocus;

end;

procedure TFrmMain.BitBtn13Click(Sender: TObject);

begin

EditSTREET.Text := '';

EditSTREET.Enabled := False;

BtnSAVESTREET.Enabled := False;

end;

procedure TFrmMain.BtnSAVESTREETClick(Sender: TObject);

begin

DMAdmin.TblSTREET.Insert;

DMAdmin.TblSTREETCODE.Value := DMAdmin.TblSTREET.RecordCount + 1;

DMAdmin.TblSTREETTITLE.Value := EditSTREET.Text;

DMAdmin.TblSTREET.Post;

DMAdmin.TblSTREET.Refresh;

EditSTREET.Text := '';

EditSTREET.Enabled := False;

BtnSAVESTREET.Enabled := False;

end;

procedure TFrmMain.EditSTREETChange(Sender: TObject);

begin

With DMAdmin do

begin

TblSTREET.Locate('TITLE', EditSTREET.Text, [loPartialKey]);

if (TblSTREETTITLE.Value <> EditSTREET.Text) and

(EditSTREET.Text <> '')

then

BtnSAVESTREET.Enabled := True

else

BtnSAVESTREET.Enabled := False;

TblSTREET.Locate('TITLE', EditSTREET.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.EditSTREETKeyPress(Sender: TObject; var Key: Char);

begin

With DMAdmin do

begin

TblSTREET.Locate('TITLE', EditSTREET.Text, [loPartialKey]);

if (TblSTREETTITLE.Value <> EditSTREET.Text) and

(EditSTREET.Text <> '')

then

BtnSAVESTREET.Enabled := True

else

BtnSAVESTREET.Enabled := False;

TblSTREET.Locate('TITLE', EditSTREET.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.BitBtn14Click(Sender: TObject);

begin

EditVILLAGE.Enabled := True;

EditVILLAGE.SetFocus;

end;

procedure TFrmMain.BitBtn15Click(Sender: TObject);

begin

EditVILLAGE.Text := '';

EditVILLAGE.Enabled := False;

BtnSAVEVILLAGE.Enabled := False;

end;

procedure TFrmMain.BtnSAVEVILLAGEClick(Sender: TObject);

begin

DMAdmin.TblVILLAGE.Insert;

DMAdmin.TblVILLAGECODE.Value := DMAdmin.TblVILLAGE.RecordCount + 1;

DMAdmin.TblVILLAGETITLE.Value := EditVILLAGE.Text;

DMAdmin.TblVILLAGE.Post;

DMAdmin.TblVILLAGE.Refresh;

EditVILLAGE.Text := '';

EditVILLAGE.Enabled := False;

BtnSAVEVILLAGE.Enabled := False;

end;

procedure TFrmMain.EditVILLAGEChange(Sender: TObject);

begin

With DMAdmin do

begin

TblVILLAGE.Locate('TITLE', EditVILLAGE.Text, [loPartialKey]);

if (TblVILLAGETITLE.Value <> EditVILLAGE.Text) and

(EditVILLAGE.Text <> '')

then

BtnSAVEVILLAGE.Enabled := True

else

BtnSAVEVILLAGE.Enabled := False;

TblVILLAGE.Locate('TITLE', EditVILLAGE.Text, [loPartialKey]);

end;

end;

procedure TFrmMain.EditVILLAGEKeyPress(Sender: TObject; var Key: Char);

begin

With DMAdmin do

begin

TblVILLAGE.Locate('TITLE', EditVILLAGE.Text, [loPartialKey]);

if (TblVILLAGETITLE.Value <> EditVILLAGE.Text) and

(EditVILLAGE.Text <> '')

then

BtnSAVEVILLAGE.Enabled := True

else

BtnSAVEVILLAGE.Enabled := False;

TblVILLAGE.Locate('TITLE', EditVILLAGE.Text, [loPartialKey]);

end;

end;

end.

AdminDM.pas

unit AdminDM;

interface

uses

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

Db, DBTables;

type

TDMAdmin = class(TDataModule)

TblDATA: TTable;

DatSrcDATA: TDataSource;

TblYEARS: TTable;

DatSrcYEARS: TDataSource;

TblDATAYEARNUM: TFloatField;

TblDATANN: TFloatField;

TblDATAHISTORYNUM: TFloatField;

TblDATAFIO: TStringField;

TblDATABORNDATE: TDateField;

TblDATABORNTIMEH: TSmallintField;

TblDATABORNTIMEM: TSmallintField;

TblDATAENTERDATE: TDateField;

TblDATAENTERTIMEH: TSmallintField;

TblDATAENTERTIMEM: TSmallintField;

TblDATASEX: TSmallintField;

TblDATABODYMASS: TFloatField;

TblDATABODYLENGHT: TFloatField;

TblDATAAPGAR: TStringField;

TblDATADN: TSmallintField;

TblDATAENTER: TFloatField;

TblDATAENTER2: TSmallintField;

TblDATAENTERDS: TMemoField;

TblDATADS: TFloatField;

TblDATADSNOTE: TMemoField;

TblDATASTATUS: TFloatField;

TblDATASTATUSDATE: TDateField;

TblDATASTATUSTIME: TStringField;

TblDATASTATUSNOTE: TMemoField;

TblDATAADDRESS: TFloatField;

TblDATAVILLAGE: TFloatField;

TblDATASTREET: TFloatField;

TblDATAHOME: TStringField;

TblDATAFLAT: TStringField;

TblDATAPHONE: TStringField;

TblDATANOTE: TMemoField;

TblDATAOPERATION: TFloatField;

TblDATAYEARs: TIntegerField;

TblDATABORNTIMEs: TStringField;

TblDATAENTERTIMEs: TStringField;

TblDATASEXs: TStringField;

TblDATADNs: TStringField;

TblENTER: TTable;

DatSrcENTER: TDataSource;

TblENTER2: TTable;

DatSrcENTER2: TDataSource;

TblDATAENTERs: TStringField;

TblDATAENTER2s: TStringField;

TblDS: TTable;

DatSrcDS: TDataSource;

TblDATADSs: TStringField;

TblDATASTATUSs: TStringField;

TblDATAADDRESSs: TStringField;

TblSTREET: TTable;

DatSrcSTREET: TDataSource;

TblVILLAGE: TTable;

DatSrcVILLAGE: TDataSource;

TblDATASTREETs: TStringField;

TblDATAVILLAGEs: TStringField;

TblDATA2: TTable;

DatSrcDATA2: TDataSource;

TblDATA2NN: TFloatField;

TblDATA2NEUROL1: TSmallintField;

TblDATA2NEUROL2: TSmallintField;

TblDATA2NEUROL3: TSmallintField;

TblDATA2NEUROL4: TSmallintField;

TblDATA2NEUROL5: TSmallintField;

TblDATA2NEUROL6: TSmallintField;

TblDATA2NEUROL7: TSmallintField;

TblDATA2NEUROL8: TSmallintField;

TblDATA2NEUROL9: TSmallintField;

TblDATA2NEUROL10: TSmallintField;

TblDATA2EXT1: TSmallintField;

TblDATA2EXT2: TSmallintField;

TblDATA2EXT3: TSmallintField;

TblDATA2EXT4: TSmallintField;

TblDATA2EXT5: TSmallintField;

TblDATA2EXT6: TSmallintField;

TblDATA2EXT7: TSmallintField;

TblDATA2EXT8: TSmallintField;

TblDATA2EXT9: TSmallintField;

TblDATA2EXT10: TSmallintField;

TblDATA2EXT11: TSmallintField;

TblDATA2NAMEs: TStringField;

TblENTERTITLE: TStringField;

TblENTERCODE: TSmallintField;

TblENTER2ENTERID: TSmallintField;

TblENTER2TITLE: TStringField;

TblENTER2CODE: TSmallintField;

TblDSTITLE: TStringField;

TblDSCODE: TFloatField;

TblSTREETTITLE: TStringField;

TblSTREETCODE: TFloatField;

TblVILLAGETITLE: TStringField;

TblVILLAGECODE: TFloatField;

TblENTER2ENTERs: TStringField;

TblENTERA: TTable;

DatSrcENTERA: TDataSource;

TblENTER2A: TTable;

DatSrcENTER2A: TDataSource;

TblENTER2AENTERID: TSmallintField;

TblENTER2ATITLE: TStringField;

TblENTER2ACODE: TSmallintField;

TblENTERATITLE: TStringField;

TblENTERACODE: TSmallintField;

TblENTER2AENTERs: TStringField;

TblPERSONAL: TTable;

DatSrcPERSONAL: TDataSource;

TblPTYPE: TTable;

DatSrcPTYPE: TDataSource;

TblPERSONALID: TSmallintField;

TblPERSONALFIO: TStringField;

TblPERSONALNAME1: TStringField;

TblPERSONALNAME2: TStringField;

TblPERSONALTYPE: TSmallintField;

TblPERSONALISACTIVE: TSmallintField;

TblPERSONALPSW: TStringField;

TblPTYPECODE: TSmallintField;

TblPTYPETITLE: TStringField;

TblPERSONALPTYPEs: TStringField;

procedure DMAdminCreate(Sender: TObject);

procedure TblDATACalcFields(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

var

DMAdmin: TDMAdmin;

implementation

{$R *.DFM}

procedure TDMAdmin.DMAdminCreate(Sender: TObject);

begin

TblDATA.Open;

TblDATA2.Open;

TblYEARS.Open;

TblENTER.Open;

TblENTER2.Open;

TblDS.Open;

TblSTREET.Open;

TblVILLAGE.Open;

TblENTERA.Open;

TblENTER2A.Open;

TblPERSONAL.Open;

TblPTYPE.Open;

end;

procedure TDMAdmin.TblDATACalcFields(DataSet: TDataSet);

begin

TblDATABORNTIMEs.Value := IntToStr(TblDATABORNTIMEH.Value) +

':' +

IntToStr(TblDATABORNTIMEM.Value);

TblDATAENTERTIMEs.Value := IntToStr(TblDATAENTERTIMEH.Value) +

':' +

IntToStr(TblDATAENTERTIMEM.Value);

Case TblDATASEX.AsInteger of

0:

TblDATASexs.Value := '';

1:

TblDATASexs.Value := '';

else

TblDATASexs.Value := '???';

end; { Case }

Case TblDATADN.AsInteger of

0:

TblDATADNs.Value := '';

1:

TblDATADNs.Value := '';

else

TblDATADNs.Value := '???';

end; { Case }

Case TblDATASTATUS.AsInteger of

0:

TblDATASTATUSs.Value := ' ';

1:

TblDATASTATUSs.Value := '';

2:

TblDATASTATUSs.Value := '';

else

TblDATASTATUSs.Value := '???';

end; { Case }

Case TblDATAADDRESS.AsInteger of

0:

TblDATAADDRESSs.Value := '';

1:

TblDATAADDRESSs.Value := '';

else

TblDATAADDRESSs.Value := '???';

end; { Case }

end;

end.

 

 

 

! , , , .
. , :