 DAO (Data access object)
  DAO (Data access object)
 OraTool fornisce un automatismo per la creazione di DAO PL/SQL per effettuare le operazioni base sulle tabelle e i Tipi:
- DAO_Select: consente di ottenere un record accedendo alla tabella per chiave
- DAO_Insert: inserisce un record in tabella
- DAO_Delete: cancella un record accedendo per chiave
- DAO_Update: aggiorna un record accedendo per chiave
- DAO_Log: consente di effettuare un trace di unrecord (dbms_output)
Come si usano i DAO
Supponiamo di avere una tabella Users in cui registriamo gli utenti di sistema ed una tabella Log_Access con cui monitoriamo gli accessi:
-- Create Table
Create Table Users
      (Iduser NUMBER(38,0),
       Username VARCHAR2(10),
       Password VARCHAR2(10),
       Pagesvisited NUMBER(38,0))
tablespace USERS
Storage (initial 64K) ;
-- Primary Key on table Users
Alter Table Users Add Constraint USERS_PK Primary Key (IDUSER);
-- Create Table
Create Table Log_Access
      (Idlog NUMBER(38,0),
       Iduser NUMBER(38,0),
       Datetime DATE,
       Page VARCHAR2(100))
tablespace USERS
Storage (initial 64K) ;
-- Primary Key on table Log_Access
Alter Table Log_Access Add Constraint LOG_ACCESS_PK Primary Key (IDLOG);
-- Foreign Key on table Log_Access
Alter Table Log_Access Add Constraint LOG_ACCESS_FK1 Foreign Key (IDUSER)
references USERS;
 
 
 A questo punto supponiamo di dovere creare un script con cui aggiornare il numero di pagine visitate sulla tabella Users.
Dopo aver generato i DAO con l'apposito pulsante DAO Gen è sufficiente lanciare:
Declare
  Cursor cUsers is
    Select *
    From Users;
Begin
  For rUsers in cUsers Loop
    -- Calculate the number of pages visited
    Select count(*)
    Into rUsers.PagesVisited
    from Log_Access
    where Iduser = rUsers.Iduser;
    
    -- Update Users using Dao
    Dao_update.Users (rUsers, rUsers);
    
    -- Trace rUsers record
    Dao_Log.Users (rUsers);
  End Loop;
End; 
 
 


