Approach for OS/2 Warp 4

By: Walter Metcalf
Date: 05/21/98

I have been fascinated by databases since my first computer, which was a Commodore 64. Dissatisfied with the accounting program I was using, I tried to write my own using a simple database program available for the C-64. I did quite well too--until I exceeded the 4K memory available for user programs! (Note: that's 4 kilobytes.) Since then I have been "on the hunt" for the perfect database, and have tried many in the process.

The latest database I have checked out is Approach, part of the Lotus SmartSuite for OS/2 Warp 4 package. Before I get into specifics of my examination, I'd like to briefly survey some of the more notable features that aren't covered later.

  1. Approach, as well as the other members of SmartSuite, features a Team Approach which allows different people in the same office, or using the Internet feature, possibly around the world, to create and work on a database, simultaneously or at different times.

  2. Using its unique Internet system, Approach can access tables and databases on the internet as if they were on your local drive. This allows your Approach session to reach literally around the world.

  3. Approach allows you to create database tables either by selecting one of several pre-existing templates, called SmartMasters, or by starting from scratch and building your own. I personally have found many of the SmartMasters too complex for me to understand well enough to modify them confidently, so I have always built my own. But for a one-time job where time is at a premium, using a SmartMaster could be a real time-saver.

  4. Approach comes with a very versatile and generally easy-to-use interface. As soon as it starts, Approach presents you with a dialogue giving you 3 options: select a SmartMaster, select an existing database with a Browse button, or select "blank database," to create a new database; the last one is the default. If you choose to select the default, Approach first presents you with another dialogue where you define which fields you want, their lengths, and their types. More complex options can be added now or later. After requesting a path and filename for the new database, Approach creates a simple form and table, or worksheet, using the fields you defined earlier. Now, using the menus, you can enter your data, create another table, create forms, reports, etc.,. Once a database is initially created most of your manipulation of the database will be done via these worksheets. There is no stated limit to the number of worksheets you can have, and it's important to realize that each worksheet may display data from any combination of fields and tables. This makes the worksheets extremely powerful. Approach also allows you to create other forms as well as reports. These are done using a simple point and click method; drag and drop can be used to modify them once they have been created.

  5. Finally Approach does have a few problems to work out. First, it has a couple of bugs:
    1. Every time I try to create a query of more than 3 conditions using the Query by Box feature, Approach crashes.
    2. I found when I closed Approach, even with all databases closed, using the 'X' icon next to the title bar, it more often than not either crashed or hung. In either case, Approach remained "stuck" in the system so that it could not be closed or restarted without first rebooting the system. Using File|Exit Approach seems to be somewhat more successful.
    3. Second, I have a bit of a problem with any program that occupies 11 MB of RAM with no data loaded. Lotus (IBM) needs to understand not every workstation, even in enterprises, has a high-end Pentium or Pentium II!
    4. Finally, I may be picking at nits, but I wish Approach had the ability to save the main window size and position. Little things like this can add a lot to an application's ease of use.

During my hunt for the perfect database, I came up with the following list of requirements or standards I looked for:

  1. Relationality
  2. Easy-to-use interface
  3. Powerful built-in programming, or scripting, language
  4. Referential integrity
  5. Decent speed.
  6. Flexible query engine, accessible through the UI as well by a script.
  7. Compatibility with a wide variety of data formats.
  8. Complete, easy-to-understand documentation.
  9. Tight security.

Understand that these are my standards. Clearly each manufacturer has its own set of standards and emphases, that explains why there is so much variety among the DBMS's available today. These standards are what I look for in a database before I fork out the cash. They will also give us a basis on which to examine Approach and compare it with some other database systems. Since no database has all of them, I look for a product with as many as possible. Let's look at Approach now and see how it fares against these standards.

1. Relationality

Essentially a database is relational if it can be viewed by the user as a set of tables that can manipulated according to a strict set of rules. Virtually all modern databases today are relational, and Approach is no different. A typical example of a simple relational database is a business that keeps a record of each sales invoice in a table indexed using an invoice number. Naturally, each invoice contains the customer's name, or customer no., as one of its elements, or fields. To make billing possible, the business must also keep a record of each customer, his or her address, phone number, and other information in another table. Since each customer may have multiple invoices, these tables are in what is called a one to many relationship. Using the join feature (by selecting Create|Join), you set this up by joining the customer number on the invoice to the customer number on the customer invoice using drag and drop. Close the Join dialogue and you're done! Thereafter when you open the invoice table, Approach automatically accesses the customer table, allowing you to select fields from either table in any query, form, or report you wish to build. The ability to access multiple tables and thereby avoid duplicating data is what makes relational databases so useful.

Approach is clearly relational, and so receives top marks in this category.

2. Easy-to-use Interface

Approach's GUI interface is superb. Much of it is drag and drop as we have already seen. Reports, views, tables, and forms can all be constructed and modified using drag and drop. On top of this the action bars and toolbars make frequently repeated procedures a snap. In addition, by clicking on the extreme left of the toolbar row, you can select a different toolbar set from the ones already provided, or you can make your own.

My only complaint is that sometimes the location of menu items is somewhat confusing: for example, too many functions are lumped under the Create menu. As a result, to delete a field, a join, etc., you have to select the Create menu. Those items should appear on the Edit menu.

One feature of Approach I especially like is its unobtrusive monitoring of each of your keystrokes and mouse operations. Once you get used to it, it's really quite helpful. In most dialogues, there is an OK or Close button that is initially greyed out. As soon as you type a valid expression this button turns black, and stays black as long as what you have enter remains valid. As soon as an expression is erroneous the button turns grey again. This can be a big help in correcting typos and other errors.

Approach scores very high in this area.

3. Powerful, built-in programming or scripting languages

This requirement comes out of my programming background. I have written several applications using database systems, and no matter how good the UI is, you can't really harness the power of a modern database if you don't have the ability to program it. In addition, programming is almost essential for automating routine database operations.

I should first mention that Approach contains several levels of macros and script facilities with which you can create scripts and macros directly from the keyboard. One method involves a sophisticated keystroke recording techniques simple enough for even a beginner to Approach to use.

The big gun in Approach's programming arsenal is the proprietary language called LotusScript. The manuals, which come in Acrobat form on CD, describe LotusScript as a version of Basic which offers in addition standard structured programming facilities and a set of language extensions that enable object-oriented application development. Moreover, applications written in LotusScript will run with the other products in Smartsuite for OS/2 Warp 4, including WordPro and Freelance Graphics. If that isn't enough, LotusScript applications can also call functions written in Rexx as well as in C! Although I haven't used LotusScript yet, I am very much anticipating doing so.

I would rate Approach as excellent when it comes to programming ability.

4. Referential Integrity

For a long while I used Paradox for DOS to create my applications. Paradox was and is a fine DBMS, and I became quite enamoured with it. However it has one fatal flaw. Its designers failed to give it referential integrity. As a result my clients and I wound up with corrupted data on more than one occasion, which cost me heavily in terms of embarrassment, time, and money. Having been burned so badly, I now won't consider a database product without this feature.

What is this strange-sounding piece of jargon I'm so insistent on, anyway? Simply put, a DBMS has referential integrity if it has the ability to ensure that changes to one table that affect other tables are transmitted to those other tables. Consider again the example of the business with customer and invoice tables. What would happen if the owner accidentally deleted a customer who still had outstanding invoices from the customer table? He'd have a number of what I call "orphaned" records: invoices for customers you had no record of. Paradox for DOS would and did allow that to happen under certain circumstances.

Approach does have referential integrity. Unfortunately I had to do considerable research of my own, including digging through some third party documentation of Approach to determine this. (In particular, see Approach 97 for Windows for Dummies, IDG:1997, Ray & Ray, p.106.) Thanks to Approach's poor documentation (which I'll go into more later), I was unable to determine this from any information provided by Lotus. Given the importance of this feature, I find it odd that Lotus doesn't advertise the fact that Approach possesses relational integrity. To the best of my knowledge the only other OS/2 database possessing this feature is DB2. None of the xBase style databases, including OnCmd, have it.

When building a database, Approach enables referential integrity by default, but the feature can be modified or completely disabled, although this is not advisable under normal circumstances. The normal way to set or modify this feature is through the join function. After joining the tables, select the Options button. You'll see a set of four check boxes, with the two Insert boxes checked. Left alone referential integrity is enabled. Modifying these settings weakens referential integrity or disables it altogether. (I consider it almost "criminal" that Lotus doesn't do a better job in the online help of explaining the potentially dangerous consequences of changing these settings, especially considering that once set, they cannot be changed.) As I suggested, once the options are set and the Join dialogue completed, the options cannot be changed with first destroying the join relationships. This provides an added level of security.

Approach receives top marks in this category.

5. Decent Speed

I have a straight Pentium 200 with 64 MB ram plus fast wide SCSI hard drives. I ran a series of tests on a database consisting a single table consisting of 10 integer fields and 20,000 records using three DBMS's including Approach. The table exists in the form of an ASCII delimited text file. Here are the results:

DBMS Speed Comparisons
Approach for OS/2
R:Base for OS/2 v4.5++
Paradox for DOS 4.5
Load & Convert ASCII Table
164 sec
22 sec
5 sec
Reverse Sort on Single Field
29 sec
4 sec
1.5 sec

You can see Approach's speed leaves a lot to be desired! As if that weren't bad enough, Approach locks out the WPS while it is processing! Since Approach for OS/2 is a port from Windows, there is some hope its speed will improve as it continues to develop.

Approach receives a rating of poor in this category.

6. Flexible query engine, accessible through the UI, as well by a script

Approach has the best query engine I have ever seen. For those of you a bit rusty on your database terminology, the query facility allows you to search the database for those records matching a set of what may be very complex conditions. Using our example above, a simple query could be, "which customers bought more than $10,000 worth of goods last year?" The query engine is what gives databases much of their power and usefulness, because it provides the ability to ask your database questions. Approach gives you no fewer than four ways to create queries from the user interface! These methods include Lotus' own Query by Box (a graphical way method of actually laying out your query using the mouse), the standard SQL, and the more usual method of specifying one directly from a record template. When using LotusScript, query operations are embedded in the logic of the script using such statements as Select Case and Do While.

Approach receives top marks in this category.

7. Compatibility with a variety of data formats

Again, Approach shines here. Approach allows importing from 11 different file formats! In addition, like many modern databases, you can actually use files from Paradox, dBase, Foxpro, and several other applications without converting or importing them. While Approach defaults to opening in dBase IV format, you can change the file format simply by selecting a different option on the combo box. Of course, Approach is completely compatible with its "colleague" Lotus 1-2-3, and as we have seen applications developed with LotusScript can be used with other products in Lotus SmartSuite.

Approach receives top marks here.

8. Complete, easy-to-understand documentation

This is without a doubt Approach's worst area. The printed documentation is a manual of about 50 pages. It is intended only as a brief introduction to using Approach, and as far as it goes it's not too bad. Two LotusScript documents in PDF format can optionally be copied to your hard drive at installation time. Together they contain about 600 pages, and they are quite good. These manuals are easily the best documentation accompanying Approach.

However, for the vast amount of your work on Approach, you have only the online help to turn to. Even an online manual in book format would probably be a big help. The online help is not only inadequate, it is outright obtuse. One error message declares, "This operation is not revertible." I had to search through two dictionaries and an encyclopedia to discover the meaning of "revertible"! The emphasis seems to be to help you understand what to do in certain situations, but gives you little information on why you should do it or what Approach does when you select that option. Rather than clarify how Approach works, most of the time it obfuscates it. Without some documentation other than this kind of online help, the user is left feeling lost and frustrated a good deal of the time.

Approach gets a rating of poor in this category.

9. Tight security

Any serious database must take steps to ensure unauthorized individuals can't view or alter sensitive data, such as payroll records. Approach does this in two ways, both depending upon passwords. First, if a password is assigned to a table, then all the data in the table is encrypted before it is stored on disk. Second, the much-advertised Team feature of Approach allows the administrator to assign many levels of security, each with its own set of accessible fields. Each field available to a user can be set to read-only or read-write.

Approach receives top marks in this category.

As you can see, the only places where Approach falls down, besides the few bugs I mentioned, are speed and documentation. As serious as both of these are, Approach is outstanding in so many other areas that Approach deserves an overall rating of very good (or B+ if you want more specificity). As I said at the outset Approach for OS/2 Warp isn't perfect, but it gets the job done (if somewhat slowly at times) and is overall the best one I have seen to date.

Unless otherwise noted, all content on this site is Copyright © 2004, VOICE