Returns a TRUE value if the last FIND statement for a particular record found more than one record that met the specified index criteria.
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.
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":
Additionally, the following statement succeeds if there is only one Smith listed in the database: