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

# recorded(+Key, -Value, -DBRef)

Succeeds if the term Value has been recorded in the indexed database under the key Key and DBRef is its unique reference.

Key
  An atom or a compound term.
Value
  Any Prolog term.
DBRef
  A variable.

## Description

Used to find all values associated with a key. Value is unified with the first term that is associated with Key. DBRef is unified with the unique database reference of this database entry. In the case of compound terms, all keys of the same name and arity are treated as equal.

Backtracking will unify Value and DBRef with the value resp. the database reference of successive values associated with Key in the order in which they were recorded.

### Modes and Determinism

- recorded(+, -, -) is det

### Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

### Fail Conditions

Fails if nothing is recorded under the key Key

### Exceptions

(4) instantiation fault
  Key is not instantiated.
(5) type error
  Key is neither an atom nor a compound term.
(5) type error
  DBRef is neither a variable nor a database reference.

## Examples

       Success:
       [eclipse]: recordz(beer, paulaner, _),
       recordz(beer, lowenbrau, _),
       recorded(beer, Value, Ref).
       Value = paulaner
       Ref = 98518     More? (;)
       Value = lowenbrau
       Ref = 98538     More? (;)
       no (more) solution.
       Fail:
       erase_all(beer),recorded(beer,guiness, Ref).
       Error:
       recorded(Beer,Value,Ref).            (Error 4)
       recorded("beer",Value,Ref).          (Error 5)
       recorded(1,Value,Ref).               (Error 5)

## See Also

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