AMBIGUOUS function

Returns a TRUE value if the last FIND statement for a particular record found more than one record that met the specified index criteria.

Syntax

AMBIGUOUS record
record
The name of a record or record buffer used in a previous FIND statement.

To access a record in a table defined for multiple databases, you might have to qualify the record's table name with the database name. See the Record phrase reference entry for more information.

Example

The following example retrieves a customer record based on a name (cname) supplied by the user. If the procedure finds a record, it displays fields from that record. If it does not find a record because more than one record matched the selection criteria (name = cname), it displays the message: "There is more than one customer with that name." If it does not find a record because no records matched the selection criteria, it displays "Cannot find customer with that name".

r-ambig.p

DEFINE VARIABLE cName NO-UNDO LIKE Customer.Name LABEL "Cust Name".

REPEAT:
  SET cName.
  FIND Customer NO-LOCK WHERE Customer.Name = cName NO-ERROR.
  IF AVAILABLE Customer THEN
    DISPLAY Customer.CustNum Customer.Address Customer.City Customer.State
      Customer.PostalCode.
  ELSE IF AMBIGUOUS Customer THEN
    MESSAGE "There is more than one customer with that name".
  ELSE 
    MESSAGE "Cannot find customer with that name".
END.

Sometimes the AMBIGUOUS function returns a TRUE value when there is no ambiguity. For example, if there is exactly one customer record, the following statement finds that record. Otherwise, the following statement always returns a message of "not found" rather than "ambiguous":

FIND Customer WHERE Customer.Name BEGINS "".

Additionally, the following statement succeeds if there is only one Smith listed in the database:

FIND Employee WHERE Employee.LastName = "Smith"
  AND Employee.FirstName BEGINS "".

Note

AMBIGUOUS is useful only when there is an index. If you use the AMBIGUOUS function to test a work file record, the function returns a value of FALSE because work files do not have indexes.

See also

AVAILABLE function, FIND statement, LOCKED function, NEW function (record buffers)