Validity Checks, Concurrency Checks, Hot Fields
can optionally maintain referential integrity in the client application. Clarion
allows for the ability of a developer working with a PC flat file database, such
as Btrieve files to provide DBMS type relational stability to a standalone application.
This is also useful for developers working with DBMS's, but who wish the front end
application to perform these tasks in order to reduce network traffic. The latter
is of prime importance to developers deploying applications over the web or IP-based
Clarion allows developers
to set RI options in the Data Dictionary. An add-in for Clarion, standard in Enterprise
Edition, is the Data Modeler. This provides a graphical interface for managing the
database schema and business rules, as illustrated below:
along with referential integrity, are the other of the two items that describe the
"business rules" of a database. These may be as straightforward as "commission must
be less than 10%", or can contain complex formulae. Clarion's Data Dictionary can
store a number of validity check options (see below), which can then be automatically
implemented in the generated code, and the development environment allows for easy
implementations (through items such as the formula editor and embedded code points)
for more complex ones.
govern the rules of what to do if an end user makes an edit, and then when asking
the database to save it, suddenly finds another user has made a change to the record
between the time the end user first opened it, and the time the end user decided
to save it. Clarion applications are automatically multi-user aware.
The previous items
are usually treated by other development tools as something to be left to the DBMS.
Hot fields are an item which belong in the front end, and are often created, at
great costs in time and effort, by individual developers using other tools, because
other tools don't include this features. This is the ability of the browse box (data
grid) to be given an option to "be aware" of another (Detail) browse box, and to
"limit" its contents according to the selected record in the other (Master) browse
box. In effect, this "synchronizes" the two grids so that if the end user selects
the parent in one table, the child records can appear in the other.