IBDataWorks 1.3

Model Diagrams


Visually displays all database objects including tables, views, stored procedures and referential integrity. The objects can be visually manipulated and positioned manually or automatically laid out by the application.

Navigation Tree


An optional database explorer presents the database objects in a famaliar tree format to allow easy navigation to objects and simplifies the management of large data models.

Object Editors


Powerful objects editors, like the table editor shown to the right, allow quick and easy manipulation of all object attributes without knowledge of SQL syntax. Editors for the following objects are included:

  • Domains
  • Exceptions
  • Generators
  • Grants
  • Indexes
  • Roles
  • Stored Procedures
  • Tables
  • Triggers
  • UDFs
  • Views

Color Schemes


Through a power preference editor, the appearance of the model layout can be tailered to any color scheme or font style and saved as a template for future use. The following are some of attributes that can be modified through the preference editor:

  • Background Color of Layout View Window
  • Background Color of Objects (i.e. tables)
  • Border Colors
  • Font Family (any TrueType font installed on your system)
  • Font Style
  • Font Size
  • Line Color (referential integrity links)

In addition, specific options are available for the display format of tables, including:

  • Toggle display of column datatypes
  • Toggle display of "NOT NULL" indicator
  • Toggle display of triggers and constraints
  • Specify the string used to indicate "NOT NULL"

Forward Engineer


The forward engineering feature allows the data model to be generated to a live database and/or saved as a SQL script that can be used with other tools like isql. The objects that are generated can be filtered down to a subset of the tables defined, or filtered by object type.

In addition, a preview is provided, showing the SQL that will be executed, allowing it to be saved to a file.

Reverse Engineer


Data models can be reverse engineered from live databases, allowing pre-existed databases to be modified and documented.

New options have been added like:

  • case conversion of object names (i.e. uppercase all names)
  • merge/replace data base objects into existing model
  • mulitple scripts can be selected

Filters can be used to extract a subset of objects from the database.

Reverse Engineering Filtering


The objects extracted during a reverse engineer can be filtered by object type (i.e. Trigger, Generator, etc...) or they can be filtered individually by name allowed only portions to be added to the existing database diagram.

Group Objects


Individual data model objects that are inherently non-visual can be grouped together as collections to allow easier maintenance. Objects that can be grouped are:

  • BLOB Filters
  • Domains
  • Exceptions
  • Generators
  • Grants
  • Roles
  • Scripts
  • Stored Procedures
  • UDFs

In addition, data models can be reverse engineered from SQL scripts.

Custom Model Views


For large data models with hundreds of tables, layout and visualization can be difficult. Multiple model views can be created that contain subsets of the entire model, each with their own unique object positioning.

Printing


The print dialog allows individual model views to be scaled and printed seperately. The model can be scaled by any factor to allow for the creation of large print documents or it can be automatically scaled to fit on one page.

Templated Triggers/Stored Procedures


Through an embedded JavaScript engine, the body of stored procedures and triggers can be generated through scripts that access the metadata of the database model.

Here is a sample script that generates an insert trigger:

 
loadScript("stringlib");
trigger = application.activeObject;
printf("CREATE TRIGGER %s_INSERT FOR %s BEFORE INSERT",
          trigger.table.name, trigger.table.name);
printf("AS");
printf("BEGIN");
if (trigger.table.primaryKey != null) {
  printf("  NEW.%s = GEN_ID(%s_GEN, %d);",
           trigger.table.primaryKey.columns[0].name,
           trigger.table.name,
           trigger.binding.paramValues[0]);
}
printf("END;");

A single template can be attached to multiple objects. In the case of the above trigger template, it can be attached to multiple triggers to avoid duplication of code.

Application Scripting


Through the embedded JavaScript engine, scripts/macros can be created that have access to the metadata of the database model. This feature can be used to generate DML scripts, automate the generation of source code (C++, Java, etc.), generate reports, etc...

Connection Management


Through the new connection management dialog, multiple servers and databases can easily be managed for quick access (with the additional option of saving passwords).

Requirements

  • IBM Compatible PC
  • MS Windows 98/ME/NT/2000/XP
  • 3 MB free disk space
  • 64 MB RAM
  • Minimum 800x600 resolution
  • 16 bit or higher color depth
  • InterBase® (or Firebird) Client (only required for forward and reverse engineering to database)