Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers Request free information on products written about or advertised in BYTE Submit a press release, or scan recent announcements Talk with BYTE's staff and readers about products and technologies

ArticlesSQL Front Ends for Windows


October 1994 / Reviews / SQL Front Ends for Windows

The BYTE Lab evaluates three high-end SQL applications development environments

Mark Hettler and Scott Higgs

Client/server architecture combines the benefits of powerful database management software, running on sophisticated server hardware or even minicomputers or mainframes, with the user friendliness of graphical desktop environments such as Windows. Because virtually all client/server database management software uses the SQL language, client tools for working with these databases are commonly referred to as SQL front ends.

This month, the BYTE Lab evaluates the three leading high-end SQL front-end development packages, all offering advanced programming capability: ObjectView Enterprise 3.0 from KnowledgeWare, PowerBuilder Enterprise 3.0a from Powersoft, and SQLWindows Corporate Editio n 4.1 from Gupta. By the time you read this, Gupta will have released version 5.0 of SQLWindows (see the text box ``SQLWindows 5.0''), but a stable prerelease version was not available in time for testing. We tested SQLWindows using an add-on product, SQLRouter for SQL Server, to allow the program to access the test database. The other products include connectivity software in the base package.

All the tested products include programming languages to supplement the visual design tools. Although intended primarily for working with data on a remote server, each of these products includes a local database engine so that prototype applications can be developed locally before being deployed. Each product provides some degree of support for development by teams of programmers; at a minimum, this includes a checkout/check-in facility to prevent multiple developers from overwriting one another's revisions. All the products can produce run-time applications so end users need not have the full development system installed.

A Bundle of Tools

SQLWindows is actually a combination of products, some of which are available separately. The package includes not only the applications development system but also the SQLBase local database engine for Windows; Quest, a form, report, and query design tool; ReportWindows, a report designer that can use data from a variety of sources; and TeamWindows, a powerful set of tools for managing applications development and storage based on a client/server repository database.

SQLWindows applications access data on database servers via software modules called routers. In the past, you had to separately purchase the router for the particular database engine the application needed to access. Router software will be included with the SQLWindows 5.0 package.

ObjectView also combines a number of components. The main package consists of the software for developing and distributing applications and for connecting to various database servers. Also included is Workgroup Library, a set of tools for managing applications and objects stored in a client/server repository database. And two third-party products are bundled in: ClearAccess, a report generation program from ClearAccess, and Gupta's SQLBase, the same local database engine that's included with SQLWindows.

PowerBuilder consists of an integrated set of interfaces, called painters, for developing applications, managing database connections, preparing executable files for distribution, and managing the libraries in which application components are stored. It also includes Application Library (a collection of predefined objects that you can incorporate into applications) and the Watcom SQL local database engine.

Smaller businesses may want the applications development capabilities of these packages without the sophisticated facilities for managing work by development teams. All three products come in scaled-down packages offering various subsets of the full packages. SQLWindows Network Edition retails for $1 995, PowerBuilder Desktop sells for $695, and ObjectView Desktop costs $499 (compared to over $3000 for the full enterprise versions).

Database Engine Support

The first requirement of a SQL front end is to be able to access the database a company's data resides on. Most businesses are already committed to a specific database platform or will choose one based on data storage and management features, rather than first choosing a front-end tool and then an appropriate database. All the tested products can access the leading client/server databases, such as Oracle, Sybase, and IBM's DB2 and DB2/2, as well as others. ObjectView and PowerBuilder greatly expand the number of databases that can be accessed by offering support for ODBC (Open Database Connectivity); SQLWindows 5.0 will add ODBC support.

PowerBuilder and SQLWindows can be configured to take advantage of specific features of the database engine being accessed. PowerBuilder uses database profiles to tell the application whether to use certain database features, like scrollable cursors or automatic committing of transactions. Based on the profile contents, PowerBuilder sends the necessary commands to the database to take advantage of the desired functionality. SQLWindows lets you set database-level options in the SQL.INI file. Each of the tested products also includes a local database engine that lets you produce, test, and refine prototype applications before deploying them in a client/server environment.

Object Management

In choosing a SQL front end (or any other applications development package), a business must consider not only the features that can be incorporated into applications but also the facilities for managing the development process. As application requirements become more complex, you need facilities to coordinate the work of multiple developers, organize the various modules in the application, and store components in a way that makes them accessible for reuse in future applications.

Objects are the com ponents that make up an application. An object can be anything from a complex form to the specific items it contains, such as fields or command buttons. In object-oriented programming, the program code associated with an object (e.g., the routine initiated when a button is clicked on) is encapsulated, meaning it is included as part of the object. ObjectView stores program code associated with form objects in a physical file separate from the form itself, but SQLWindows and PowerBuilder encapsulate object code.

Developer productivity is enhanced when objects can be developed once and then reused repeatedly, either in their original form or with minor modification. The most rudimentary method for object reuse is to copy and paste an object using the Windows Clipboard. SQLWindows has the most powerful and flexible object-copying facilities of the tested products. Selecting an item in outline view automatically selects all subordinate items in the outline, including all contained objects and associated pro gramming code. You can copy and paste this entire selection into the same window, into a different window in the same application, or into another application. Selecting an object in visual design view selects exactly the same contents as selecting its corresponding line in the outline view.

PowerBuilder's Library Painter makes copying an entire window from one application to another easier than in the other products, but PowerBuilder has no facilities for copying objects from one window to another. A Duplicate option in the Window Painter makes a copy of an object within the same window, but only its appearance is duplicated, not the encapsulated program code.

ObjectView uses the Windows Clipboard to copy and paste objects within a window or between windows and makes excellent use of drag and drop for moving and copying objects. Because program code is stored separately, it is not copied with the object. Each window is stored as a separate file in the operating system, so you can copy windows e asily with operating-system commands, taking care to copy the associated program code file for each window as well.

Object Classes

Using classes further facilitates object reuse. A class is simply a type of object; all objects of a given class have certain common characteristics. All visual design tools employ classes, even if they're not referred to as such. For example, buttons are a class; all objects of the button class have common characteristics, such as simulating the appearance of being pushed when clicked on. The concept of classes is most useful when you can create your own classes based on existing classes.

A class based on another class inherits the characteristics of the class from which it is derived. For example, you might create a class called next button that inherits all the characteristics of a generic button and also contains the program code to scroll a form to the next record. You might then create a class called master-detail next button that inherits all the charac teristics of a next button and also contains the program code to synchronize detail records with the current master record. One of the most powerful features of inheritance is that if the characteristics of a class are changed, all objects and classes previously derived from that class automatically reflect that change.

SQLWindows supports the creation of classes with some significant additional capabilities. Instead of creating a class and then creating objects from that class, you can create an object and then save that object as a class. For example, you might create navigation buttons and then decide to retain their characteristics permanently as reusable classes. SQLWindows also allows multiple inheritance, whereby an object or class can inherit the characteristics of multiple classes.

PowerBuilder offers user objects, which are similar to SQLWindows' classes but with some significant limitations. Derivation and inheritance are trickier with user objects. For example, you cannot derive a us er object from a button; you'd create a user object containing a button and then need to keep track of distinctions between the user object as a whole and the button contained in it when referring to them in application code. User objects are created in a separate interface from the windows where they will be placed, and they cannot be derived from previously created custom objects. PowerBuilder does allow individual objects to be derived from existing objects and inherit their characteristics.

Reusable objects and classes are most useful in the long term when they can be stored in libraries separate from individual applications. SQLWindows lets you maintain classes in libraries that can be accessed in applications in much the same way that include files can be accessed in C programs. PowerBuilder allows instances of user objects maintained in one library to be placed in applications maintained in another library, and its Application Library offers a variety of predefined objects for placement in appli cations. ObjectView does not support user-defined classes as described in this section, but its Workgroup Library facility allows maintenance of individual objects that can be copied into applications. Unlike when copying objects within or between ObjectView applications, you can copy associated program code along with an object when copying the object from Workgroup Library into an application.

Workgroup Management

Large businesses often have teams of developers working on the same application. This creates a need for safeguards to ensure that developers do not overwrite one another's changes. In addition, changes to an application inevitably introduce new problems, and, to produce a stable executable, it is frequently necessary to backtrack to a point in the development process before the problems were introduced.

All the tested products support checking out and checking in individual application components. When an application or component is checked out, the original version of it, ma intained in a central location, is locked while the developer works on a copy in another location. The original is still available in read-only form for testing the application or producing an executable, but no other developer can modify the application until it is checked back in.

SQLWindows and ObjectView also include built-in version control, maintaining multiple versions of applications and their components as revisions are made. PowerBuilder does not have built-in version control, but it includes links to PVCS, a popular version-control system used in many large-scale development environments. These links let you use PVCS to maintain version control on the contents of PowerBuilder libraries. SQLWindows and ObjectView can optionally be used with PVCS, rather than with their own built-in version-control facilities.

Client/Server Repository

A client/server database makes the ideal repository for applications, for the components making up existing applications, and for reusable objects. A database is much better than a flat network directory tree for storing and managing the development environment. Most leading client/server databases allow storage of binary objects in database tables, letting you store not just information about an application but the application itself, using binary object fields for such components as source code modules or form designs.

ObjectView's Workgroup Library and SQLWindows' TeamWindows make use of a client/server repository database in managing workgroup applications development. Both products' built-in version control and checkout/check-in facilities maintain applications in the repository database, and you can store reusable objects there as well. Both can build run-time executables from components stored in the repository. PowerBuilder does not use a client/server repository database; its Library Painter works with files residing on a local or network drive.

SQLWindows' TeamWindows has the more powerful repository implementation. In addition t o storing the components making up an application, TeamWindows stores data dictionary information about the database on which the application is based. Even though SQLWindows 4.1 requires the repository to run under SQLBase, it can read and store data dictionary information from any engine platform. The information is then used for developing forms based on the structure of the data that will ultimately need to be accessed. TeamWindows maintains historical information as modules are revised and development proceeds, and it generates a variety of predefined status reports.

Deployment

Once an application has been developed, it must be deployed on users' systems. Normally, the full development software used to produce applications and the application source files aren't needed. All the products tested support deployment of run-time executables, and their license agreements allow unlimited distribution of run-time applications without paying royalties.

In addition to the application executabl es or run-time files, certain vendor-provided software is also required for applications to run. SQLWindows installs deployment files in a separate subdirectory on development systems so that you can easily copy them along with an application for distribution. Router software must also be installed on target systems.

PowerBuilder provides separate setup disks for deployment files (including software for connecting to databases) so that they can be installed without the development software. ObjectView also supplies separate deployment setup disks, but we were unable to run applications after installing just the deployment files; the system claimed that necessary files were missing. ClearAccess must also be installed on target systems if an application includes ClearAccess reports.

The SQL Decision

PowerBuilder provides user-friendly interfaces for all aspects of the development process, from designing form layouts to maintaining components in libraries. Its DataWindows facility is a power ful yet easy-to-use mechanism appropriate for almost any situation in which users need access to the database. PowerBuilder also provides well-organized and readable documentation and produces outstanding performance. It falls short of SQLWindows, however, in the smoothness and straightforwardness with which complex functionality can be incorporated into applications. Its reporting features are more limited than those of its competitors.

Although the interface where you work is less user friendly in SQLWindows than in PowerBuilder, SQLWindows is easier to use when it comes to making an application behave as desired. The more complex an application's requirements, the more likely only SQLWindows offers sufficiently flexible customization options and clear implementation instructions. Its facilities for event handling and passing data between forms are at a level above its competitors'. TeamWindows exploits the benefits of the client/server environment to provide the best facilities for managing the deve lopment process. Its performance is significantly slower than its competitors' on most interactive operations and is slower than PowerBuilder's in reporting.

While it presents no glaring deficiencies rendering it inadequate for developing complex applications, ObjectView falls short of its two competitors in almost every area of comparison. It offers outstanding performance on certain individual tests, particularly nondatabase operations, but this benefit is offset by poor report-writing performance. Documentation is sketchy and poorly indexed, integrating reports into applications is difficult, and the mechanism for implementing event handling is cumbersome. It does offer sophisticated facilities for integrating applications with C programming, as well as a client/server repository that can be implemented on any database platform.

This report contains the partial results of a recent issue of Software Digest, a monthly publication of NSTL, Inc. To purchase a complete copy of the report, contact N


The Facts



ObjectView Enterprise 3.0       $3200
ObjectView Desktop               $499
ObjectView Model Connection     $2500
KnowledgeWare, Inc.
3340 Peachtree Rd. NE
Atlanta, GA 30326
(800) 338-4130
(404) 231-8575


PowerBuilder Enterprise 3.0a    $3395
PowerBuilder Desktop             $695
PowerMaker                       $349
PowerViewer                      $199
Powersoft Corp.
561 Virginia Rd.
Concord, MA 01742
(800) 395-3525
(508) 287-1500


SQLWindows Corporate Edition 4.1 $3395
SQLWindows Network Edition       $1995
Gupta Corp.
1060 Marsh Rd.
Menlo Park, CA 94025
(800) 444-8782
(415) 321-9500




SQL Performance



PowerBuilder performed fastest on most tests. It's slowest on the string
-parsing test, which measures nondatabase processing. Results are in seconds.


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
Bulk update                      2623.3       2457.1        2288.4
TEST DESCRIPTION AND ANALYSIS
Differences between the products are minor because most of the activity takes place on the server, in terms of query optimization and database reading and writing.


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
String parsing                   13.6         20.6          20.2
TEST DESCRIPTION AND ANALYSIS
Does not interface with the database at all; useful for measuring performance of the front end only. ObjectView performs faster because it can add a full row of multiple values to a table in a single operation.


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
ISBN search                      1.4          1.2           2.4
TEST DESCRIPTION AND ANALYSIS
Retrieves one record from a table, creates
 a two-record result set based on a joined query, displays this information on the screen in master-detail format, and adds a record to a temporary area on another screen.


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
Author search                    3.1          3             5.2
TEST DESCRIPTION AND ANALYSIS
Includes several more queries than the previous test; query results cannot simply be displayed on-screen, but also in a form that allows you to select one result record for further processing.


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
Post order                       2.4          1.3           2.5
TEST DESCRIPTION AND ANALYSIS
Virtually no screen writing; consists entirely of moving data from form fields into SQL statements that are sent to the database.


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
Query orders table               110.8        58.3          10.8
TEST DESCRIPTION AND ANALYSIS
SQL
Windows retrieves only those records needed, not the full result set. PowerBuilder can also retrieve only the records needed, but this option slows subsequent operations (so we retrieved the full result set for this test scenario).


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
Scroll to last record            0.8          0.6           114
TEST DESCRIPTION AND ANALYSIS
Having retrieved the full result set on the previous test, PowerBuilder and ObjectView can move to the last record quickly. SQLWindows must retrieve the remaining records in the result set to reach the last record.


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
Update record                    5.7          0.8           1.2
TEST DESCRIPTION AND ANALYSIS
PowerBuilder and SQLWindows let you make changes to multiple records and write them in a single operation. ObjectView writes changes to a record when you move to the next record.


                                 OBJECTVI
EW   POWERBUILDER  SQLWINDOWS
Search                           1.4          2.1           318.5
TEST DESCRIPTION AND ANALYSIS
ObjectView and PowerBuilder each have a feature to search a table column for a specified value. In SQLWindows, a program script must manually loop through a table and compare the field value in each row with the search value.


                                 OBJECTVIEW   POWERBUILDER  SQLWINDOWS
Complex report (preview/print)   154/102      58/14         57/105
TEST DESCRIPTION AND ANALYSIS
SQLWindows' preview has advantages over PowerBuilder's, but formatting each page slows it down. PowerBuilder also prints faster from preview mode. ObjectView uses ClearAccess for reports, which must establish its own SQL connection.




Table: OVERVIEW (This table is not available electronically. Please see October, 1994 issue.)
Table: Highlights (This table is not available electronically. Please see October, 1994 issue.)
Tab le: DATABASE ACCESS AND SUPPORT (This table is not available electronically. Please see October, 1994 issue.)
Table: APPLICATION FEATURES (This table is not available electronically. Please see October, 1994 issue.)

Up to the Reviews section contentsGo to next article: SQLwindows 5.0SearchSend a comment on this articleSubscribe to BYTE or BYTE on CD-ROM  
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network