[ Recorded Database | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]

referenced_record(+DBRef, ?Value)

Succeeds if DBRef is the database reference of a currently recorded term and this term unifies with Value
+DBRef
A database reference.
?Value
Any Prolog term.

Description

The database reference DBRef must refer to a term that has been recorded in the indexed database. Database references can be obtained from the predicates recorda/3, recordz/3 and recorded/3. If the referenced term has already been erased, referenced_record/2 fails. Otherwise, Value is unified with a copy of the recorded term. Note that database references are not integers.

Fail Conditions

Fails if the referenced term has already been erased or if it does not unify with Value.

Resatisfiable

No.

Exceptions

(4) instantiation fault
DBRef is not instantiated.
(5) type error
DBRef is neither a variable nor a database reference.

Examples

   Success:
   [eclipse]: recordz(beer, paulaner, Ref),
   referenced_record(Ref, X).
   Ref = 1714c8
   X = paulaner
   yes.
   [eclipse]: recorded(beer, _, Ref),
   referenced_record(Ref, X).
   Ref = 1714c8
   X = paulaner     More? (;)
   yes.
   Failure:
   [eclipse]: recorded(beer, _, Ref),
   erase(Ref), referenced_record(Ref, X).
   no (more) solution.
   Error:
   referenced_record(_, Value).         (Error 4)
   referenced_record(123, Value).       (Error 5)



See Also

recorda / 3, recordz / 3, recorded / 3, erase / 1, referenced_record / 2