Die Adreßdatenbank IV

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]

AddressManager.om
PROCEDURE Delete(db: Database; address: Addresses.Address);
   (* delete address from db.hashByName and
      the other two hashes if present
   *)
   VAR
      otherAddress: Addresses.Address;
BEGIN
   Hashes.Delete(db.hashByName, address);
   IF (address.phone # "") &
         Hashes.Lookup(db.hashByPhone,
            address, otherAddress) &
         (address = otherAddress) THEN
      Hashes.Delete(db.hashByPhone, address);
   END;
   IF (address.email # "") &
         Hashes.Lookup(db.hashByEmail,
            address, otherAddress) &
         (address = otherAddress) THEN
      Hashes.Delete(db.hashByEmail, address);
   END;
END Delete;

*Bei Delete sind ebenfalls alle assoziativen Arrays zu berücksichtigen.
 
*Dabei ist hier zu achten, daß wir bei den sekundären Indizes nur die Einträge löschen, die von dem gleichen Datensatz stammen.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999