|
PRO4m is able to automatically recognize Progress database
tables relations defined in Progress database schema
by an unique index for a parent table field(s) and an
index for a child table field(s), where fields in parent
and child tables have similar names. For example: State.state
with an unique index for that field is a parent table
to Customer.state with
a not unique index on 'state' field.
PRO4m picks this information from the metaschema tables
automatically and you don't have to worry about how
to keep PRO4m relations table up to date.
Unfortunately database schema is not always defined
like that. Sometimes indexes for related parent-child
tables don't exist, sometimes fields have different
names even logically being in parent-child relation.
PRO4m (as well as Progress Data
Dictionary) is not able to automatically recognize
fields relations in that case.
To tell PRO4m what the tables relations are we wrote
following two programs: "Join
Tables" and "Update
Relations". These two programs
let a user to tell PRO4m about not obvious tables relations,
where it is not possible to recognize it automatically.
top
Our programs DO NOT modify Progress metaschema (PRO4m
never does it) keeping the tables relation remembered.
Programs do store additional tables joins in a PRO4m
project file. So it is completely safe to use our Join
Tables tool. This information is used
by our Dynamic DB Browser
and Tables Data Inspector
utilities joining the database tables to provide flexibility,
making it easy to use and to understand Progress Database
tables relations to PRO4m users.
top
"Join Tables"
and "Update Relations"
programs available from Dynamic
DB Browser and from Table
Data Inspector window menus. See an
example below:

top
"Join Tables"
module creates a new tables join in two steps:
1. Select a parent table, define a field to join and
click "Next"
to continue.

2. Select a child table and a child table field to
join and click "Join"
button.

3. Use "more fields.."
button to join tables by more than one field (up to
seven). Fields datatype must match to let the program
add fields to the joins list.

Here you can customize your joins by adding conditions
to the join WHERE phrase, which will be added to your
query automatically at the time of opening a query for
the joint tables (see
an example below).
top
"Update Relations" module basically does
the same with the only difference - it lets you to modify
already existing joins and to enable/disable existing
joins without removing from the joins list ("Delete"
button and "Status"
column).

Here you also can update your join conditions to parent
and child tables WHERE phrases for any selected join.

Here is an example of your
join condition automatically added to WHERE phrase when
building a query for Invoice
table as a parent table to Customer
table.
** Click on image to preview in
a separate window

top
|