Release 10.1A: OpenEdge Development:
Progress 4GL Reference

> ## 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 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 © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095