Paradox

These are various notes on using Paradox and on database design. Many of these notes are based on my experience with Paradox for Windows 5 (before Borland sold Paradox to Corel).


BDE Configuration - lock file problems


Built-in F1 Help

The help is so so


Language Elements

Paradox stores a database in a directory. Complex database applications frequently link several databases.


Basic Tasks


Table Design Rules

If a database is "correctly" designed, then it should be relatively easy to change the data storage from one system to another. There are many important items, including Another area of concern is the data access methods. For instance


Requirement Analysis Database Structure

D:\DOCS_PUB\SCENARIO\95-10-10\ANALYSIS\B_PLATE.RSL

The form - ImprtDoc.FSL - was used to import specially formatted text files.


PW Tools

The PW_tools directory contained the following.


CM Data Tables

Databases contain many objects - it is useful to keep track of them and to write some sort of description. Originally, I kept this data in a directory called Descript (Win 3.1 did not allow long names). Rather than keeping a single master table to describe every file I ever created, I applied a more object oriented approach and attached a separate subdirectory (object instance) to each directory. Each of these directories contained all the related tables, forms and reports.

After a while, it was obvious that this was not such a good idea - identical forms and reports were being replicated all over the hard drive. My solution was to adopt an even more object oriented approach - I placed all the forms and reports in a central location and placed only the tables (including indices and the like, about 15 files in all) with the database it was describing. CM_Data and the methods (forms and reports) were placed in x:\PW_TOOLS\CM_TOOLS, the alias was :CM Tools:.

If all this data had been placed in one humongous table, then the tight association between the data and what it was describing would have been lost. For instance, the object oriented approach causes the associated data to be copied whenever the database is copied (or backed up, or deleted, or renamed). Therefore the actual amout of work necessary to maintain the description data is significantly reduced. Also, the data fields necessary to identify which database a specific record belongs to is replaced with a directory structure.

Many directories contain a CM_Data object (directory) which contains 2 tables - Descript.db and Structs.db. (2 tables require 15 files with indecies, memo tables, validity checks, and the like.)

Instances of the CM_Data object are accessed via

Where :CM Tools: is an alias which points to x:\PW_TOOLS\CM_TOOLS

Under MS Access, databases are stored in mdb files, not directories. The CM data should be stored in a separate mdb file

MS Access is supposed to allow libraries (mdb files without tables).

However, once again, you need the development system in order to get formatted data from your system. Only compiled applications should be used for forms and reports - neither Paradox nor MS Access should be used.

Active web content is problematic because the "web server" is another runtime environment. ISAPI is a particular problem because there is no simple way to tell the server to unload the dll. You actually have to shutdown the server and restart it. (Unbelievable) Yeh, there are a few workarounds, but they're basically all kludges. This sort of thing should be built into the server.

Modified By contains either a name or "Auto" if it is set by a program.

Right click any item to get a selection menu. - View with data, edit form, resructure table, filter

Exporting Paradox 8 1-to-many reports to html does not include the "many" data; exporting to text does (but the formatting sucks).

On structs5.fsl, right click the File Extension field to select which (or all) extension to display.


Description Tables


References / Additional Reading


Author: Robert Clemenzi - clemenzi@cpcug.org
URL: http:// cpcug.org / user / clemenzi / technical / Databases / Paradox / index.html