     

    14  

           RENTMAN    
,      .    
   ,    .   ? 
      ,       
  RENTMAN,     .  
          
 RENTMAN,        /. 
       ,      
    RENTMAN. ,    . 

      

           , 
       .      
    ,     
,      . , ,  
  ,       . 
    Q   ,      
   .         
  ,       
.     ,     
,   ,  ,      . 
    Q        ,  
        .     
     ,    ,  
  .      : 
"   ?       
 ?         ?" 
 ,      " " ,  
         . 
             , 
        .  
  ,    .   
  ,     ,  
  ,   -  .. 
      . 
    Q ,   ,    . 
    Q        ,  
,    ,  . 
    Q       . 
     ,        , 
   . 

     14.  295 

    Q    ,    
,    ,      
       . 
           . Q  
          
. Q  ,     
 . 
    Q        , 
    . 
    Q    -,     
     . 
    Q ,     ,    
    . 
    Q ,          
.          
    .       
     . 
      ,      
 ,    ,   
RENTMAN.          
  . 
               
    .   8, 
"    /" : " 
RENTMAN    ". 
         ?    
  ,   .  ,  
,    -. 
          .    
 8  ,    ,    
  . 
    Q      . 
    Q      . 
    Q     . 
    Q        . 
     ,      ,  ,  
   RENTMAN    
. ,     ,     . 
    ,     ,    
  .      
     ,     
 RENTMAN. 

         

            
   ,      , 
     . ,   RENTMAN 
    ,   . 
    Q        TENANT,   
      LEASE. 
    Q    City  PROPERTY,   Richardson, 
Dallas, Piano, Norman, Oklahoma City  Edmond. 
    Q    PROPERTY    ,   
  LEASE     . 
    Q       PROPERTY  Deposit. 
    Q      StartDate  WORDER. 
    Q    PROPERTY    ,  
 6  (bedroom). 
      , , ,    .   
        . 

    296  II.   

       

             ,  
 ,   ..,    . 
       , 
  ,    /     
" .   ;  SQL     , 
 Object Pascal  C++,        .  
     ,     . 
    Q        ,   
       ,  
,           
.        
    ,     
   ,     . 
    Q    -      
,    ,    
     . ,   
          
    ,    ,  
,      .    
   ,   ,    
,    .  ,   
  ,           
   . 

        

      ,       
,     ,     
  . -,     .   
        
      ,   
  .      
    .     
 .  ,       
   ,       
      /. 
    "-,      . ,  
      10 
,         
 20.         
 ,         .   
,       ,  
,         .   
 ,    . 
              
     . ,   
,   , ~   
,    200 ,     
     400 .     
,            
,  ,    ,   
 .      ,    
,     . 
          ,     
     . ,  
 ,      . 
       ,  ,    
   ,      . 

         / 

         ,    SQL   
   .       
 .  ,     
     ,     
     . 

     14.  297 

        -     
,      ,      
   .  ,    / 
         , 
    , 
           ,  
     .   , 
    .  ,  
,    ,     . 
,         
LEASE,      LawnSerive    
  False. 

    With taLEASE do 
    While not EOF do begin 
       If taLEASEPetDeposit.AsFloatoO then taLEASELawnService.AsBoolean:=False ; 
          Next; 
    end; 

              . 
             
.  ,     /  
 . ? -, ,    
   LawnService    LEASE.  
       .  , 
        . 
-,       
         ,  
       .   
,        . 
      /       
 SQL.           
 ,          
.         ,    
  . ,   SQL    
,     . 

    UPDATE LEASE 
    SET LawnService="F" 
    WHERE PetDepositOO AND LawnServiceo'F' 

              
     . 

         

    ,  , ,       
  ,    .   
   ,         
  .       
    ,     
       .  
   ,      
 ,        
     ,      /. 
       /,    Delphi, 
        
TDatabase.     ,   
StartTransaction  ,         
Commit,      Rollback.      
/     SQL  . 
,  MeTOAaStartTransaction  dbRENTMAN   
    RENTMAN    InterBase SET TRANSACTION. 

       

            
  ,     
      .  
  (TIL  transaction isolation level)  
     ,  ,  
  ,   . 

    298  II.   

     TIL    Trans Isolation  
TDatabase.        : tiDirtyRead, 
tiReadCommited  tiRepeatableRead.   Translsolation  
 tiDirtyRead,      ,  
    ,    ,   
 ,     .    
tiReadCommitted      .   
  tiRepeatableRead,      , 
      .     
    ,   -  
           
  . 
         T1L,    
  .  ,     
  tiRepeatableRead  tiReadCommited.   
. ,       Trani  2.   
Trani   TIL tiReadCommited      ,  
 Tran2   tiRepeatableRead    ,    
          
.       ,    
          
        .  
       tiReadCommited,  
  . 

      

           .  
       -  ,  
   ,     
 ,  .       
23, "   ". 

     

          ,  
     . ,   Sybase  Microsoft SQL 
Server        sp lock,   
 Oracle       V$WAITSTAT.   InterBase 
        Lock Manager 
Statistics  InterBase Server Monitor.     
       
,           
 . 

     UpdateMode 

       UpdateMode  Table  Query    
 SQL,    . ,   ,  
       , 
  Delphi,    ,    
        . 
 UpdateMode       : 
upWhereAll, upWhereChanged  upWhereKeyOnly.     
,   ,     WHERE  
  . 
         ,  ,  
,   SQL UPDATE     
.   UpdateMode   upWhereAll,   
  WHERE  UPDATE      
   .    upWhereChanged 
     ,    .   
  upWhereKeyOnly,       . 
        upWhereAll,   
        .  
     upWhereChanged,   
    ,   upWhereAll.  
       
upWhereKeyOnly   .       
 ,       ,  
 upWhereKeyOnly    .   

     14.  299 

             
 ,    .   
,   upWhereKeyOnly  UpdateMode  
       . 
    ,     UpdateMode    
 Delphi SQL Monitor.       BDE  
,       .  ,  
 SQL Monitor    SQL,   
   . 
          ,   SQL Monitor   
Database Delphi    Always on Top   Options . 
   RENTMAN   <F4>,     
  PROPERTY.      ,  
-       Post .  
    SQL Monitor,     UPDATE, 
   .    ' ,   
    .    ,   
    . 
      SQL Monitor    .    
 dmRENTMAN         
UpdateMode  taPROPERTY  upWhereChanged.   SQL 
Monitor  ,     PROPERTY     
SQL Monitor   UPDATE.       
,   ,     WHERE 
,  . 
      SQL Monitor       
UpdateMode  taPROPERTY  upWhereKeyOnly.    
   SQL Monitor  .      
 PROPERTY       SQL 
UPDATE  ,        
  ,       . 
  - "    upWhereKeyOnly    
  .       ,  
,   ,   ,  
 . 

     CachedUpdates 

             
       (cached 
update).   CachedUpdates     True,  
 ,    , , ..   
 ,   ,         
 ApplyUpdates. 
         ,    
CachedUpdates.     dmRENTMAN     
Delphi.    taTENANT     CachedUpdates 
 True.    fmRSYSMANO     Tenant 
 Tables.   

    fmRTENCGDO.Show; 

      

    fmRTENCGDO.ShowModal; 

         

    dmRENTMAN.taTENANT.ApplyUpdates ; 

         ,   ,  
  TENANT,      ,     
.       . , 
            
      . 

          

             
        SQL  
   .       
   ,       
 SQL,    .  ,  
  SQL,  - ,   
 

    300  II.   

             
   .     
        . 
            
,       ,    .   
InterBase, ,    ,    
,  ,     ,    
      .   
RENTMAN   ,     
   . ,  SQL,   
 SQL   quWorkDuration,      
 . 

    SET TERM ; 
    CREATE PROCEDURE GetWorkDuration (WONum INTEGER) RETURNS (WorkDuration float) 
    AS BEGIN 
    FOR SELECT sum(WORKTYPE.TaskDuration) as WorkDuration 
    FROM WODETAIL, WORKTYPE 
    WHERE WODETAIL.WORK_TYPE_CODE = WORKTYPE.WORK_TYPE_CODE 
    AND WODETAIL.WORK_ORDER_NUMBER=:WONum 
    INTO :WorkDuration DO SUSPEND; 
    END " SET TERM ;' 

      ,     Query 
 StoredProc       
  .       ,   
           . 
      ,    RENTMAN   
,     "- " 
. , ,     WODETAIL  
,      WORKTYPE,   
,     .   
     ,    ,   
       ,  Description  
TaskDuration   WORKTYPE,      
.     ,     
       /   
,   Paradox  dBASE. 

     

       TLiveQuery,       27, 
"   ",       
  ,        
 .   ,    
        
  .       
   27. 

        

           ,  
 ,      
.        ,  
   ?      
   ?   ,     
     ,     
  ,      
 ,          
,       . 
          ,  
          
     ,   ,   
  .         
,       .   
     ,     
         . 

     14.  301 

           /   
       . ,  
  Paradox      
  .       
,      .   
         ,  
        . , 
    ,  ,   
      ,  . ,  
        
          .  
         
 . 
        /   .   
         
 ,   .  ,   
      
,  ,  ,   ..  
         , 
      ,     . 

         GRANT 

    GRANT    SQL,      
.         REVOKE. 
    : ,     ; 
,      ; ,  
 . ,     SQL  
    WORKTYPE: 

    GRANT ALL ON WORKTYPE TO PUBLIC 

        (all)   (SELECT, INSERT, UPDATE, 
DELETE  REFERENCES)   WORKTYPE   .   , 
       : 

    REVOKE ALL ON WORKTYPE FROM PUBLIC 

     

           /   
 ,        .  
           
,     GRANT ALL ON _ 
 PUBLIC.          
,    . 

       GRANT  REVOKE      
-  . ,      
 GRANT: 

    GRANT SELECT, INSERT, UPDATE ON EMPLOYEE TO PUBLIC 

              REVOKE. 
REVOKE SELECT, INSERT, UPDATE ON EMPLOYEE TO PUBLIC 

     ,     PUBLIC   
 .        
  .      
/,  InterBase     ( 
   PUBLIC, ) ,  ,  ,  
   Sybase  Microsoft SQL Server,   
          . 
 ,     InterBase   
,         . 
             RENTMAN,  
   InterBase Server Manager   
.  ,   Server Manager,   
   InterBase,       
File^Server Login.    ,    , 
  File^Database Connection. 

    302  II.   

            Task   User 
Security.         
.      InterBase Security.   
 Add User  ,     . 
       .   
 ,          
.       ,     . 
     ,    , 
    . 
       ,        
     .      
          InterBase, 
 ,  ,   ,   
        .    , 
       GRANT. ,  
        TENANT  
  : 

    GRANT ALL ON TENANT TO MARY 

            ,    
     . 
     ,     WITH GRANT OPTION  GRANT 
       . 
,    

    GRANT EXECUTE ON PROCEDURE LISTPROP TO MARY WITH GRANT OPTION 

     MARY    (execute)  
 LISTPROP,    ,      
   . 

      

           
   29, " ".    
     . 
    Q  ,       ,  
   ,  ,    
   . 
    Q          
   .    
  ,      
 . 
    Q      ,   
 ,  ,      
     . ,   
,        
      TCP/IP,   
-      .    
     . 
    Q        InstallShield 
Express,     Delphi.     
    29. 

     

            
 /,        
.          
    -     
,      /    
  .  ,      
   /     
    ,  ,     
    .    / 
   "!"       
 . 

     14.  303 

     ... 

      15  ,      
Microsoft SQL Server.        
      Delphi,     , 
,    .. 

    304  II.   
