Database Xcessory Tour

Welcome!

Welcome to Database Xcessory (DX), the premier application development tool for Motif developers.

Database Xcessory represents a radical new approach to rapid application development: one that delivers all the advantages of visual, drag-and-drop development with none of the disadvantages of traditional 4GL tools.

That's because Database Xcessory is not a 4GL, but a "data aware" toolkit that generates readable, extensible and easily maintainable C or C++ code. DX fits into your application in the same way as any Xt-based widget set. And because it utilizes native database drivers, your applications are assured of maximum performance and flexibility.

Using DX, you can:

  • Work in a highly productive, visual environment.
     
  • Build data-aware applications simply by dragging and dropping widgets.
     
  • Customize applications by editing widget resources instead of writing code.
     
  • Switch between Oracle, Informix and Sybase databases without rewriting code.
     
  • Use object-oriented design techniques with or without an object-oriented language.
     
  • Maximize the productivity of large work groups.
     
  • And much, much more!
     

About this tour

This tour is designed to give new users a 40 minute overview of product features. It also includes an in-depth tutorial designed to build practical, hands-on DX expertise.

Take the full tour by clicking the 'Next Stop of the Tour' link at the bottom of each page. You can also jump to any section of the tour by clicking on the main menu. Note that any section of the tour can be printed by using the File/Print option on your HTML browser (click on the right frame first.)

  • Getting Started-- An introduction to DX tools and screens.
     
  • DX Widgets -- A description of all DX widgets.
     
  • Database Jumpstart -- Create a data-aware application in four easy steps. 
     
  • Behind The Scenes -- Customize applications to meet your exact needs.
     
  • DX Tips and Tricks-- Callbacks, data validation, QBE & other advanced features.
  • In-Depth Tutorials -- Six hands-on tutorials cover progressively more advanced material. 
     
  • Contact ICS -- We're here to help.
     
  • Installation Notes -- Everything you need to get up and running.

Documentation: 

Behind the Scenes

In the last example you created a complete, fully functional application simply by dragging and dropping columns from your database. But what happened behind the scenes?

Automatically, DX created an Object Instance Hierarchy of your application, and set resources for all the widgets in your interface.

When you dragged and dropped fields from the Schema Browser to the Browser, DX:

  • Created a Database Access widget (which connects your application to a database)
  • Created a Query widget (which allows the application's user to query the database)
  • Created the Data Presentation widgets in your interface
  • Created a Control Panel and populated it with often-used Control Widgets
  • Set all widget resources.
     

The Interface's Object Hierarchy

By editing widget resources, you can change the behavior of your application. By rearranging the object hierarchy, you can add, delete and subclass the widgets that make up your application.

Editing Widget Resources

You can edit any resource by selecting a widget, displaying its resources in the Resource Editor, and changing any resource value.

You can select a widget by:

  • Clicking on it in the Browser;
  • Clicking on it in your interface;
  • Searching for it using the Browser search field.

The easiest way to select a widget is by clicking on its object instance name on the Browser hierarchy. Some widgets (such as the Query and the Database Access widgets) are not represented visually on the interface. As you create your interface, it is likely that the hierarchy will grow too large to be viewed in its entirety on the Browser. The Browser has a Panner/Porthole combination for easy scrolling in two dimensions. Using the slider, you can view the portion of the hierarchy you cannot see.

If the hierarchy is very large, you may prefer using the Browser search field from the Browser View menu.

Note: All DBPak resources are grouped together at the bottom of the resource list.

Displaying Widget Resources

After you select the widget, you must update the Resource Editor--when you update, that widget's resources and their current values are displayed in the Resource Editor.

Update the Resource Editor in one of the following ways:

  • Double-click on the widget.
  • Select the widget, then click the Update icon on the Resource Editor tool bar.
  • Select the widget, then select Update from the Resource Editor View menu.

Once you update a resource, you can then edit it. To the right of the resource you will see either the current setting or an empty input field. For some resources, toggle buttons (such as for True and False values), or an option menu will be displayed.


Adding Widgets to Your Application

DX gives you two way to add DX widgets to your applications, each with slightly different implications:

1. Dragging and Dropping Columns from the Schema Browser.

When you drag data columns from the Schema Browser, DX automatically sets database resources.

  • To create a new application window, drag one or more columns to the Browser Window. DX automatically creates a new window with a Container widget, Control Panel and Data Field for every widget you dragged and dropped.
  • To add widgets to an existing window, simply drag and drop them on to your application.

2. Dragging and Dropping Widgets from the Palette.

When you drag widgets from the Palette, DX doesn't know what database columns you want to use. You will have to set these manually by setting resources in the Resource Editor.

  • To create a new application window, drag a Container widget, such as the Bulletin Board, from the Palette to the Browser. DX creates a new screen in a separate window.
  • To add widgets to an existing application, simply drag them from the Palette to your application.

Usually you will mix and match these two methods of creating widgets. Thus you could create a new application window by dragging and dropping a Bulletin Board widget from the Palette. You could then add data fields by dragging and dropping columns from the Schema Browser to the application window.

Additional Resources:

  • Refer to Using Database Xcessory in DX HyperHelp.
  • If you are an SQL user, refer to How DBPak Resources Relate to SQL in DX HyperHelp for an overview of how DX sets SQL-based resources.

Documentation: 

DX Jumpstart

How to build a data-aware application in four easy steps.

Building a DX application consists largely of dragging widgets from the Schema Browser or Palette to create a hierarchy of widgets, then setting their resources. When you create an application by dragging fields from the Schema Browser to the Browser, most of the work is done for you. Here's how:

Note: This example uses Sybase. Oracle and Informix users may see slightly different screens.

Step 1: Select the data you want to work with.

  1. From the Schema Browser, choose a database from the Database list. If you want to follow along, choose the OrderEntry Database.
    (Oracle users: choose an owner name from the Owner list.)
  2. All corresponding database tables for the OrderEntry database are now displayed in the Tables list. Select the table you want to work with, in this case we use Accounts.
  3. Now choose a widget class type from the Object Type menu, in this case since choose DataField.
  4. Finally, select the desired fields from the Columns table. In the example below, you see four fields selected.

Selecting columns from the Schema Browser


Step 2: Drag and drop fields from the Schema Browser to the Browser.

  1. Use mouse button two to drag the fields to the Browser.
  2. A complete interface is created by Database Xcessory!
  3. Note that DX creates a Form widget as the interface's container, and adds a Control Panel at the bottom of the screen. DX also creates a labeled data field for every field you dragged and dropped.

A Simple Application


Step 3: Test your application in Play Mode.

  • From the Browser Project menu, select Play Mode.

Note that Play Mode is "data safe" -- that is, all data updates and additions are rolled back immediately upon exiting Play Mode.

Selecting Play Mode from the Browser

  • Notice that some of the Query Control widgets in the Control Panel are now active.
  • Press the "Search" button to retrieve the first record in the database.
  • You can now use the arrow keys, "Search" button and built-in QBE features to access other records.
  • To add records to the database, select the "Last" button, then the "Next" button. You should see a blank screen where you can enter a new record.


Step 4: Compile and Run Your Application

To generate code for your application:


 
  • Return to Build Mode by selecting Build Mode from the Browser Project menu.
  • Select Generate Code... Generate C from the Browser File menu.
  • To compile your application, enter:
    % make -f makefile-c
  • To run your application, enter:
    % main-c

Congratulations!
You've just created your first DX application!

Documentation: 

DX Widgets

The DX Palette includes over 100 professional widgets -- the most complete X/Motif widget collection available anywhere!

 

DX Widgets

DBPak Classes

  • <Database> Data Src is a Database Access widget that connects to the specified database.
  • Query is a Query widget representing an SQL select statement and all of its parameters.
  • DB Table is a Query widget that displays 2-dimensional tabular data.
  • ExtList Query is a Query widget that displays its results in a read-only multi-column list (EPak Extended List widget).
  • DB DataField is a Data Presentation widget that handles the display and entry of data as text.
  • Control Panel is a container for a collection of Control widgets. Use this widget to manage any Motif widget or DBPak Control widget.

 

Documentation: 

Getting Started: DX Windows

Start DX by entering the following at a command line prompt:

%dx

The four main windows of Database Xcessory are displayed:

  • The Palette
  • The Browser
  • The Resource Editor
  • The Schema Browser
The Palette holds the widgets, classes and user-defined collections you use to build your application. The DX Palette includes:
  • Motif - standard UNIX GUI toolkit
  • DBPak - Database aware widget toolkit used by DX
  • EPak - the ICS Enhancement Pak, a set of additional widgets to help make your interfaces look and work better
  • ViewKit - an application framework to make Motif development in C++ more efficient and easier than ever before

Together, the most comprehensive X/Windows widget collection available anywhere!

With DX, you build applications simply by dragging and dropping widgets, then modifying their resource settings. You can also create your own widgets, classes, and collections, and add them to the DX Palette.


The Browser is your main work area.

As you drag and drop widgets to create screens, the Browser displays the hierarchical structure of your interface. As you add and modify widgets, the Browser shows you the instance hierarchy of your interface.

 

Use the Browser to:

  • Select a widget by clicking on it.
  • Modify the hierarchical structure of your interface.
  • Define new classes.
  • Generate C, C++ code, and makefiles.
  • See online Help.
  • Switch between Build Mode (for building) and Play Mode (for testing).
  • Access DX Managers -- helpful tools that keep track of constants, identifiers, procedures and types used in building your application.

The Resource Editor allows you to easily edit widget resources. When you double click on a class or widget instance in the Browser, its resources are displayed in the Resource Editor.

Use the Resource Editor to:

  • Set resources.
  • Add callbacks.
  • Apply application-wide styles.
  • Search for widgets.

The Schema Browser lets you view the schema of a specific database. By dragging and dropping columns of data, you can quickly build a fully-functional, data-aware application.

Use the Schema Browser to:

  • Select the databases and tables you want to work with.
  • View sample data.
  • Drag and drop data-aware widgets on to your application.

 

Documentation: 

Getting Started: How DX Works

Building a DX application consists largely of dragging widgets into place, then setting their resources. 

By setting widget resources you can:

  • control the connection to your database;
  • manage the flow of information between the database and your user interface;
  • specify the way database information is validated, displayed and updated;
  • manage the instance hierarchy of your application.

There are four categories of DBPak widgets:

  • Database Access widgets specify a connection to the database. You can either require users to log in at runtime, or you can specify login information in advance. Unless you are connecting to multiple databases simultaneously, you need only one Database Access widget per application.
     
  • Data Presentation widgets manage the display of database information. By modifying Data Presentation widgets, you control how fields are validated, formatted, and labeled. You need one (or more) Data Presentation widgets for each database column used in your application.
     
  • Query widgets coordinate between the Database Access and Data Presentation widgets. By modifying Query widget resources (and adding callbacks), you control what data is retrieved, how it is displayed and how it can be updated. Query widget store data that has been retrieved from the database. They also maintain a cursor into the database for browsing from row to row. You can think of them as holders for the result set of an SQL select statement, with extra 'smarts' to edit and update the retrieved data. You generally need one or more Query widgets per application screen.
     
  • Control widgets are push buttons that tell the Query to move between rows of a table, i.e. "Next Record", "First Record", "Search", etc. Control widgets are commonly grouped together to form a Control Panel.

The following figure illustrates the relationshis between DBPak widgets:

Documentation: 

Getting Started: The DX Philosophy

The DX Philosophy

At ICS we believe there are five fundamental criteria for evaluating a client/server development tool:

  • Does it generate clean, standard modular code in the programming language you use?
  • Does it allow you to create better user interfaces, and create them faster?
  • Does it allow you to work in a totally open environment without proprietary limitations?
  • Does it allow you to support the highest performance database model?
  • Does it allow you to maintain database independence among vendors?

With Database Xcessory, the answer to all five is a resounding YES!

One Tool for One Job

Unlike traditional 4GL products with built-in compilers, debuggers and testing tools, DX lets you mix and match best-of-breed tools for the job at hand. DX works hand-in-hand with the tools you already use, including RCS, SCCS, CodeCenter, ObjectCenter, Purify, ClearCase and more. It also integrates with development environments such as SunSoft's Workshop, SGI's Developer Magic and DEC's FUSE. These integrations allow you to build applications faster in the environment you feel most comfortable.

Open Tools for Open Environments

Because DX generates readable C or C++ code, developers gain all the productivity advantages of traditional 4GL tools with none of the proprietary pitfalls. In fact, because DX replaces vendor-specific database calls with a common API, DX delivers a level of database independence unavailable through vendor-supplied solutions. At the same time, DX supports the highest performance database model available -- 3GL code with no interpreters.

Object Based by Design

With DX, object-oriented design doesn't just mean generating C++. It also means the ability to create and modify classes and subclasses, group resources into styles, and share code easily with other developers. These capabilities allow work groups to reap all the benefits of object-based design -- even without an object-oriented language.

Documentation: