,,,
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
. 1
, . , - ( : 1) " " TDataSet - , , ; , design-time , , - ; 2) , ).
. 2
( 20) ,
, / ,
-, .
.
design-time,
Delphi.
. 3
-
, , , , - .
,
Delphi
(, DataBase Form Expert,
),
, IDE.
,
, ,
IDE,
. , ""
, IDE,
,
. (
, Delphi IDE;
;
"Help",
"" Delphi).
. 4
IDE- , , Delphi.
-
. 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 .
. 6
Delphi, ( ) VCL ( 200 1995.) (external-site interface).
.
.
1) . .
2) .
3) .
4) .
, .
. . . , . , . , . . . . .
Delphi. 8 .
1. .
2. -.
3. .
4. .
5. .
6. -.
7. .
8. .
. . - . - ( ) . - .
, . .
(. 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.
Copyright (c) 2025 Stud-Baza.ru , , , .