Progress
Programming
Handbook


Referencing Tables and Fields

Unique table and field names do not require fully qualified references within application procedures. In a single database Progress application, references to non-unique field names require a table prefix to avoid ambiguous field references. Use the following syntax to reference a non-unique field in a procedure:

SYNTAX
table-name.field-name 

The tablename is the name of the database table that contains the field fieldname.

The ability to connect to several databases from a single Progress session introduces the possibility of non-unique table names and increases the possibility of non-unique field names. References to non-unique table names within multi-database Progress applications require database prefixes to avoid ambiguous table references. Ambiguous table and field references cause compilation failures. Use the following syntax to include a database prefix in a table or field reference:

SYNTAX
database-name.table-name 
database-name.table-name.field-name 

The databasename is the logical name (or an alias for a logical name) that represents the database that contains the table tablename.

For example, suppose you are connected to two databases db1 and db2, both of which contain a table called customer. The following procedure will not compile due to an ambiguous table reference:

FOR EACH customer: /* In db1 or db2 ? */ 
  DISPLAY name. 
END. 

The procedure below uses fully qualified table references to display customer names from both connected databases (db1 and db2):

FOR EACH db1.customer: 
  DISPLAY name. 
END. 
FOR EACH db2.customer: 
  DISPLAY name. 
END. 

Notice that the two references to the name field do not need to be qualified because they appear within a FOR EACH block that already contain fully qualified table references.

NOTE: When Progress encounters a statement such as “DISPLAY X.Y”, it first attempts to process “X.Y” as a databasename.tablename. If that fails, Progress then attempts to process “X.Y” as tablename.fieldname.


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