     

     4
 
            
       
/.       , 
      ,      
   . 
               , 
        
/,    Delphi.      , 
     ,    
  . 
       ,  ,      
     .      ,  
  .   ,     
  ,     . 

        Object Pascal 

        ,    Delphi.   
   , ,  ,  , 
,   ..  ,     
 ,    ,     
   .     , 
, , ,  , ,   
   ..        
   . 

      
            
,       , 
      Windows 95/NT.  Delphi 
    ,      
   ,    . 
     ,   
  ,   ,      
  /      . 
            
,           
 ,        
  . 

     

       ,  ,  ,    
,      ,   . , 
,         , 
 DATA.        
:      DATA,   
   . 

     4.  57 

      DATA          
WordPerfect,   Windows,   Quattro Pro for Windows  .. 
     ,      
.          
,      , 
   . 
      ,    ,   
    ,     . 
,  RentalMan,    " "  , 
   :\DATA\DELPHI3\RENTMAN.      
   ,       .  
 -         
.      ,      
,         .  
   , ,    ,     . 

      
     Windows 95   ,      
   DATA.    My Documents ( 
).    ,      
DATA,     Windows 95.  ,    
Windows 95   (folder),      
 Explorer (). 


     

           ,  
   8.3 (..         
    ).  ,       
 ,  Delphi  ,    
    .  ,    
      ,    . 
,              
 ,     ,      
 . 

     

     ,      ,     
  "" .  ""     
 ,       .   
            
 .  ,         
     CSD0400.      ,  
      CSD0401, CSD0402  ..  ,  
  ,     ,     
.  ,        
 ,       .    
         .   
     ,      . 
      ,   ,   , 
 ,  ,     . 
         
  . ,     Rental 
Maintenance Management System,        , 
   R. 
              , 
   .   -  
         ,  
   .    ,     
 ,         
         . 
,   Rental Maintenance Management System  , 
         
CALLS.    RCALEDTO    ,  
  Rental maintenance management system, Call Edit dialog box. 
     ,    
   . ,     
        . 
  ,    ,    
 . 

    58  I.  


      

         ,     , 
  .    ""  
,     .       
 .  ,     - , 
  ,  ,   .  
 ,            
,        . , 
     RCALEDTO,   : ",  
 R-Call-Edit,       ?"  , 
   ,    ,     . 

      

       ,      ,   
        "" 63 .   
,       ,    
 . ,     , Delphi 
          
 .         
     Windows      
  ,        . 

     

          ,    
,   ,      ,  
. ,       
    ,  ,    .  
 ,         , 
      ,     
    .   ,   
      ,  
    .       
,         
  . ,      ,  
     (  ,  
  )   T.     
   (VCL  Visual Component Library), 
  Borland  Delphi.    
       . , 
,    3.5  ,  
rrbl.     ,     Object Pascal, a 
ArrayTable    . 
       Name   Delphi,   
 -    ,  
  . ,  Memo    
m,  Edit   ed  ..    
        , : 
    edCustomerName  meComments.  . 4.1    
      .  , 
        Form  DataModule,    
     . 

     4.1.  Delphi     
    
    			 

    Animate		an		ListBox		lb 
    AutoObject 	ao		ListView		lv 
    BatchMove	bm		MainMenu		mm 
    BDEProvider	bp		MaskEdit		md 
    BDEResolver	br		MediaPlayer		mp 
    Bevel		be		Memo			me 
    BitBtn		bb		MemoryDataSet	ms 


     4.  59 


     . 4.1 

    					 

    Button				bt	Notebook			nb 
    Calendar			ca	OleContainer		ol 
    Chart				ch	OpenDialog			od_
    ChartFX				ex	OpenPictureDialog		op_ 
    CheckBox			ck	Outline			ou 
    CheckListBox			clb	PageControi			pc 
    ClientDataSet			cd	PageProducer		pp 
    ClientSocket			cs	PaintBox			pb 
    Colorbar			co	Panel				pa 
    ColorDialog			co_	PopupMenu			pu 
    ColorGrid			cg	PrintDialog			pr_
    ComboBox			cb	PrinterSetupDialog	ps_
    CoolBar				co	ProgressBar			pr 
    Database			db	QRBand			qba 
    DataModule			dm	QRChart			qch 
    DataSetTableProducer	dp	QRChildBand			qcb 
    DataSource			ds	QRCompositeReport		qcr 
    DateTimePicker		dt	QRDBCalc			qdc 
    DBChart				dch	QRDBImage			qdi 
    DBCheckBox			dck	QRDBText			qdt 
    DBComboBox			deb	QRDetailLink		qdl 
    DBCtrlGrid			dcg	QREditor			qed 
    DBEdit				ded	QRExpr			qex 
    DBGrid				dgr	QRGroup			qgr 
    DBImage				dim	QRImage			qim 
    DBListBox			dib	QRLabel			qla 
    DBLookupCombo			dico	QRMemo			qme 
    DBLookupComboBox		dicb	QRPreview			qpr 
    DBLookupList			dlli	QRRichText			qrt 
    DBLookupListBox		dllb	QRShape			qsh 
    DBMemo				dme	QRSubDetail			qsd 
    DBNavigator			dna	QRSysData			qrs 
    DBRadioGroup			drg	Query				qu 
    DBText				dte	QueryTableProducer	 
    DdeClientConv			cc	QuickRep			qr 
    DdeClientItem			ci	RadioButton			rb 
    DdeServerConv			sc	RadioGroup			rg 
    DdeServer  			si	RemoteServer		rs 

    
    60  I.  


     . 4,1 

    					 

    DecisionCube			cde	ReplaceDialog	re 
    DecisionGraph			cgp	Report		rp 
    DecisionGrid			cgr	RichEdit		re 
    DecisionPivot			cpi	SaveDialog		sa 
    DecisionQuery			cqu	SavePictureDialog	sp 
    Decisionsource		cds	ScrollBar		sa 
    DirectoryListBox		dl	ScroliBox		sx 
    DirectoryOutline		do	ServerSocket	ss 
    DrawGrid			dr	Session		se 
    DriveComboBox			dc	SpeedButton		sb 
    Edit				ed	SpinButton		su 
    FIBook				fl	SpinEdit		sd 
    FileListBox			fl	Splitter		si 
    FilterComboBox		fc	StatusBar		st 
    FindDialog			fi	StoredProc		sp 
    FontDialog			fo	StringGrid		sq 
    Form				fm	TabbedNotebook	tn 
    FTP				ftp	TabControl		tc 
    Gauge				ga	Table			ta 
    Graph				gr	TabSet		ts 
    GraphicsServer		gs	Thread		th 
    GroupBox			gb	Timer			ti 
    Header				he	Toolbar		to 
    HeaderControl			he	TrackBar		tb 
    HotKey				hk	TreeView		tv 
    HTMLDataSetTableProducer	ht	UpdateSQL		us 
    HTMLPageProducer		hp	UpDown		ud 
    HTMLQueryTableProducer	hq	VSSpell		vs 
    HTTPDispatcher		hd	VtChart		vc 
    IBEventAlerter		le	WebBrowser		wb 
    Image				im	WebDispatcher	wd 
    ImageList			il	WebSession		ws 
    Label				la 
    
            . 4.1   
 ,      (_).    
    .     ,   
 ,          
,       
      d. ,    
 Edit   ed,      
DBEdit   ded. 

     4.  61 

     
     CASE-       
    . , S-Designor (  
 PowerDesignor)      , 
   .     
,           
. 

     

               
,      .  
      T,    
   ,  ,   
.      ,    
       .     
 ,     .   
    ,    Object Pascal 
  .      : 

    TRecordMouse = (rmAll, rmNone, rmClickAndDrags); 


     

            ,  
      ,     
#define.       ,    
,  , , ,       
 .        
 LiveQuery,       27, " 
  ": 

    DEFAULTCREATEVIEWSQL = 'CREATE VIEW %s AS '; 


     

          ,     
 .      ,    
,  .       
,        

    TLiveQuery: 
    TemporaryDB: TDatabase; 
    WorkSQL: TStrings; 

         ,      
  ,      
: 1    , g        
 .        
 ,        
    ,     . 

       

              
     .   
  ,       ,    
      ,   . 
 ,     ,   
,      SalesTax: 

     := SalesTax; 

       ,   Get   
,   .       
    ,        
. ,     Delphi   
FileOpen      Get   . 

    62  I.  

    ,     Borland  
   VCL,    Set   
,   ,  Get    , 
  .         
  ,      . 

        Object Pascal 

      ,   ,   
  .   , , , , 
        , 
   -,       . ,  
     ,    ,  
        - ,   . 
           
 ,       .   
         
ifelse,  begin-end  .  ,     
,       ,   ,  
    - . 

     if-else 

       ,       if-else, 
  ,      .   
 . -,  , ,    
    . -,   , 
   ,     .    
 ,  Pascal        ,  
    : 

    if  = 1 then  := z; 

         ,     
  if,     : 

    if ( = 1) or (x*2 = 4) then  := z; 

         if  ,    , 
            
      ,   .    
    ,      
       ,    
        
.           
 ,     ,     
     . 

     begin-end 

      ,        
if-else,     ,    
,   ,     begin   , 
    .   if  ,  
    begin    ,    if.   
 Pascal      ,  
   begin         if,  
      .       
   ,  ,  ,     
.   ,     ,  
 : 

    if ( = 1) then begin 
        := z; 
       closefile; 
    end; 

      , ,  : 

    if ( = 1) then 
     begin 
       := z; 


     4.  63 


      closefile; 
    end; 

         - ,    
  .      
   Delphi,   ,     
         
. ,        
.      ,     if, 
  begin-end   ,    ?   
      if,       
 if?     ,    
?       if   
  begin?    ,   , 
  begin     ,    if,   
     .  ,    
  end    if,    
. ,       
  if,       
,      begin. 
         begin  end  
   .    ,  ,   ,  
    ,  ,   - 
       . ,   , ,  
  begin  end  - ,   
     ,   ,  
        . 
       ,   
   (,  ),      
,      ,     . 

     

     Object Pascal      (*...*), {...}  
//.    {...}    , .. , 
       .   
  ,       
,     (*...*).     , 
      .       
     ,    //. 
             
       , 
    ,      
. ,    SendKeys,    
     ,    
   .       
        , 
         ,  
  (*...*). 

        

     ,    ,    
     SQL, ,  ,   
  .        
        ,   
  .      ,  
     . 
             
  ,       . 
 SQL       ,   ,  
 ,    ,       
       .    
      ,   
    . 
            Object Pascal,  , 
   ,      .  
   .    ,   
       . 

    64  I.  

      
               
  ,     ,    
.        ,   
  . ,      
  (, InterBase ,   , SQL Server) 
     .     
      SQL,      
 .           
 ,      . ,  
          
,    ,     .   
     , ,   
,   ,        
 . 


     

     ,          
  ,     ,   . 
       ,   
          . 
        ,    
,    .     
 : SQL  Sybase  Microsoft SQL Server, ORA  Oracle Server, 
SQA  SQL Anywhere  ..    ,   
    ,    
 .      , 
 DEV, TST  PRO.        
      1  99 (   ,  
    ).        
    . 
         . ,  
   Sybase SQL Server,     
,    .   ,  
   SQLDEV01.    ,   
 ,   SQLPR001. 
    ,     ,        
       . 

     
              . 
,      Oracle     
   ORADEVOO.        
   Sybase SQLDEVOO, ,  , 
 ,          . 
  ,        
 ,        . 

      
          ,     
         .   
, ,       ? 
      .    
   ,         
      ,   
   .  ,   
       ,   
,     ,   
 . ,     ,  
     ,  " "  
    ,    . 

     4.  
    3 Delphi 3   / 65 

         ,       
        
  .   ,  ,    
,      . ,   
    ,     
.   ,      
 ,        
       .   
         
  .      
       , 
    ,   , 
,     ,     
. , ,     Oracle  
     ORAPR001  
      Oracle.     
  . 
    1.      ORADEV01,   
 . 
    2.       . 
    3. ,      ,  
  ORAPR002,    ORAPR001  ,    
,    ,   ORAPR002.  
  UNIX        
 ,   DNS. 
    4.        
  ORAPR001  ORADEV01,      
 . 
    5.        ORADEV01 
( ORAPROOI). 
        ,      
" ",       .   
   ,      ,  
    . (     ,   
         
     .) 

      

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

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

             ,   
- .         
 ,        . 
   ,      

    66  I.  

    actmast0.  act  
      (accounting system), mast 
  ,      (master), a 0   
,      . 
     ,        -  
 .   ,   SQL 
-  ,     ,   
   ,      
   .  ,       
 SQL,   .      
    ,      ,  
     ,     
  .        
          
. 

      

              
 .     , 
         , 
    .   SQL Server, ,   
   (logical device),   Oracle   
 (data file).         
 ,        .   
          
   -  . 
         ( ) ,  
,       .   
  ,        
,           .  
          
.    ,       
 .         DAT. 
,        ,   
  . ,   ,   
          . 
           . 
,     ,       
   medical.      meddatOO.dat.   
,     (log file)      
 medlogOO.dat.      ,   
 ,       ,  
        . 

      
     SQL Server    ,     
  .      
 .      , , 
   .     

       ,    ,  
 ,      
  .   SQL Server     
(segment),   Oracle    (tablespace).   
 ,       
     ,     
. ,  ,       
billingdata,    bildatOO.dat,   , 
   generalledgerindexes,  glidatOO.dat.   
  ,    ,    ,  
 ,      .   
      . 

     

      ,      . 
        ,    
   .  ,  ,    
,     SQL.   -

     4.  67 

         
,          
    SQL   . 
           -   
(  ,   ),   .   
         :   
 ,   .     
     SQL.    ,  
    .     
 ,  ,     .   
   INVOICES, ORDERS, CUSTOMER  .. 
      ,      . 
       SQL,  
, ,    ,     
 . 

     
      ,      
,          , 
        
 SQL.   ,      
""    , ,    
,          
     . 


     

      SQL         
,         
    .   ,    
 ,    ,    ,  
      . ,  
,    CUSTOMER,    CUSTOMER01,   
CUSTOMER02  .. ,    ,   
,     ,  Sybase SQL Server,  
    ,   
 . 

     

     (view)    ,   .  SQL 
     ,  
        . 
         
 V  VW,         . 

        

        (stored procedure)  ,  
    .       
       SQL. ,    , 
      ,    
 ,     .     
         , 
      . 
              
 ,      .     
         , 
     ,  .  ,  
  -    SQL,  SELECT * FROM, 
           
     EXECUTE. , -,   
-     ,       
(  , , InterBase),   
    sp.      
   . 

    68  I.  


     
        ,    sp_,   
Sybase SQL Server  Microsoft SQL Server   ,    
     master.     
       ,  
 . ,        
  ,    _s. 

      ,  ,       
   ,         
    Object Pascal.     
   ,    . 
       ,      
  .      ,  
 . 
    ,  ,    CALLS    
Rental Maintenance Management System,     RCALLST0.   
R  ,    , CAL   
 CALLS,     , a LST   ,  
   (list)   .  0   
     . 

      
      Sybase  l       
 .  Oracle  "" (overload)  , 
  ,        
.  Sybase        , 
     .      
.      ,  ,   
,      . 


     

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

     

          (rule),   
       .  
 - ,      
(restrictive)   (permissive).     
  ,    .  ,  
    ,      .  
   . ,      
 ,     NonZero,        Sex 
    F,     MaleFemale.   SQL  
   ,       
.  ,       ,  
  SQL     CREATE,  
 ,         
   . 

        

     ,    ,  ,  
     (default),    
,     (    
  )    (    

     4.  69 

). ,    Sex     
 F,       SexFemale.  
        SQL,   
   .  ,       
     CREATE,     
      . 

     

       (domain), ..    , 
      Object Pascal,   ,  
  .       
   T,     ,  
. , ,   CustomerNo,   
TCustomerNo.   ,   , ,    
  CustomerNo,           
CREATE TABLE    .      
,    SQL     CREATE,  
 ,      
    . 

        

        ,    ,  
 ,        
    .      
        ,  
       
( ,    ).    
     ,   ,    
    .         
   . ,     , 
    ,     
INVALID_CUSTOMER_NO.   ,      
 ,     ,   
  ,    .       
    ,      
    ,   ,   
   .    
     ,     SQL   
    CREATE,      
      . 

       

        ,     (generator)  
 (sequence),       
.       GEN (  )  
SEQ (  ). , ,  
 CustomerNo,    CustomerNoGEN,  , 
    OrderNo   OrderNoSEQ.   
      ,    SQL  
   CREATE,   , 
       . 

     

             ,  
  .  ,     ,   
   .         
UPDATE , ,  SELECT. ,   TENANT, 
   ,   TENANT UPDATE,   
 PROPERTY,    ,  PROPERTY SELECT. 

    70  I.  


     

              
,     SQL,    .  
     INSERT, UPDATE  DELETE,   
,         . , 
,        TENANT,  
 TENANTlnsertUpdate,  ,      
 WORDERS,  WORDERSDelete. 
        ,       
  ,       Before 
 After, . , ,  ,  
    PROPERTY  SQL DELETE,  
PROPERTYBeforeDelete  PROPERTY_BEFORE_DELETE. 
         (row trigger)   
 (statement trigger).          
 R  S, , : 
    PROPERTY_BEFORE_DELETE_S.   ,    ,   
        . 
         ,    SQL   
  CREATE,   ,   
     . 

     

     (column)       SQL,   
      .    
  ,       ,    
     .      
   ,      
   .   ,   
    ,      
  ,   .    , 
         
   . ,        
  ,    ,   
      ,  CustomerNo.   
     ,  Number  Address,  
        . 
,   ,     ,  
CustomerNum,    ,     
,  OrderNo.        
  OrderNo, ShippingAddress, SampleWeight, AverageWellDepth  .. 

     
    -       
     ,  
       . , 
       Delphi    
   .        
    .       
  ,       
  .  ,      
         ,   
  . 


     

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

     4.  71 

  .     
,          ,  
    ,         
.   -    ,   
     ""   ,  
   ,   . 
                
.   , ,      
,    Oracle.        
      .  ,   
       ,   ,  
   ,       
    . 
     . 4.2         
 ,      . 
     4.2.         

                      -  
                                               
                                              
   	                             8       SQLPR001
       
 (SQL Server, Oracle  ..),
      (,  , 
),        

                               8       medmast 
    ,     
 ,       (, -  
..) 

                               8       medlogOO.dat 
(                                     
) 
      , c  
    (DAT   , LOG      
 ..),     .      
DAT 

                                 8 PATIENT 
 ,    

                                PATIENTOI
        

                        8 PATIENT  PATIENT_V 
 ,    .   
     ,      
  v 

                     8  mpatlstO  
   ,       
  ,      ,  
    

    72  I.  


     . 4.2 

    		             	   
                                                 	 

    	                          	8	mpatupdp 
   ,      
,      .   
    ,     	

    	                          		NonZero 
 , ,      
  .     	
        		StateTexas 
        

    	                          		TCustomerNo 
 ,      	

    ,                      		INVALIDCUSTOMERNO 
     	
    ,     
 	

    , 	  		CustomerNoSEQ 
      SEQ ( )  
GEN ( )	
    	                         		TENANT SELECT 
  ,     UPDATE  SELECT	
    	                         		TENANT InsertUpdate 
  ,     , 
   	
    	                         		HomePhoneNo 
,    ,   	

    
     
           ,     
,    .     
 ,         . 
,   InterBase  HomePhoneNo     
HOME_PHONE_NO.       ,   
        . 

     4.  73 


          ,    
  Object Pascal     .   
  . 
    Q  ,     ,    
.        ,      
  ,   ,    ,   
    . 
    Q      ,      
,         .  
     ,    , 
 . 
    Q ,      ,   
   Windows 95/NT. ,    
  8.3,     . 
      . 
    Q       ,    
      .  ,    
      .    
    ,       
 . 
    Q     ,     ,  
   T.        
;          . 
        ,    . 
    Q       ,  , 
       . 
    Q          , 
  ,      .   
      . 
    Q       begin,  
 ,     ,    . 
    Q  Object Pascal     .  // 
   ,   (*...*)  {...}  
 .        
-       ,  
        . 

     . 

           SQL.    
     SQL ,     
 . ,    ,    SQL   
    ,    Delphi,  
    5, "SQL   ". 

    74  I.  

