Progress
Language Reference


AMBIGUOUS Function

Interfaces
OS
SpeedScript
All
All
Yes

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 file defined for multiple databases, you might have to qualify the record’s filename 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 LIKE customer.name LABEL "Cust Name".

REPEAT:
    SET cname.
    FIND customer WHERE name = cname NO 
ERROR.
    IF AVAILABLE customer
    THEN DISPLAY cust-num address city state postal-code.
    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 name BEGINS "". 

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

FIND employee WHERE last-name = "Smith"
  AND first-name 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


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095