dBMAN by Versasoft An Initial Review by John C. Leon May 29, 1986 edited August 18, 1986 distributed through the H.A.S.T.E. BBS Houston Atari ST Enthusiasts 713-955-9532 permission granted to distribute unaltered original text It is very difficult for me to evaluate a complicated piece of software like this in a brief "memo" form of review. I regret not having had time to put dBMAN through all its paces before reporting to you, but we thought you deserved a quick opinion of this relational database program. Let's talk a sec about relational databases. Those of you coming straight from the 8-bit Atari world without experience on other machines have never seen a relational database, as the 8-bit Atari had none available for it! Products like Data Perfect and Synfile+ are known as file managers. This means that they can only work on one file at a time. They are also inflexible (tho Data Perfect I consider to be quite powerful) in that the built-in functions are all you've got. You can't program a data manipulation routine of your own. Relational databases are an entirely new ballgame. CP/M and MS-DOS users have had dBASE, dBASE compilers like Clipper, RBASE 5000, Paradox, and a host of similar products for quite some time. The relational databases have two primary characteristics that separate them from the file managers. First, the capacity to work on numerous "open" files simultaneously. Imagine an inventory file, a purchases file, and a sales file. You take your purchases, increase your inventory based on purchases, record sales, and then reduce your inventory based on sales. That's three integrated files. Purchases and sales are used to update inventory. Here's another example. If you recorded your customer names and addresses every time you made a sale, then numerous entries in the sales file would have redundant information! Why not just use a customer NUMBER, and have a separate customer file where you stored the customer number, along with the customer names and addresses? In this way, you could update for a change of address merely by updating the customer file, and not have to search your entire sales file, changing the address on each sale to that customer. Preparing invoices is as simple as relating the customer file to the sales file, extracting name and address info from the customer file, and sales to each customer from the dBMAN by Versasoft - 1 - An Initial Review sales file. The linking element between the files is the customer number. This is the stuff of relational databases, where you normalize your data to eliminate redundancies, and relate files easily for total freedom in data manipulation. The second distinction that any relational database has over file managers is its PROGRAMMABILITY. The more complex applications you may wish to design would require typing numerous commands at the keyboard to accomplish even the simplest tasks. These same commands can be programmed, saved in a COMMAND file, to automate such tasks. Think of such programs as super macros, where the computer executes your stored commands in sequences you design, to facilitate the running of your system. Many people make a living out of designing turnkey database systems for business (offices, banks, stores, etc). In fact, these database languages are so refined that they actually belong in a legitimate class of their own as programming languages! With the utilities around these days, you could use any text editor to write a dBASE system, compile it, and have it run as a separate stand-alone package, without ever even having owned the actual database itself! There are no dBMAN compilers per se, but you do use an outside editor to compose programs, and can run your programs with the runtime package available separately from Versasoft. In other words, you can supply dBMAN custom programs to be run under the runtime package. Your customers do not have to own dBMAN! The IBM version of dBMAN sells for $295. The ST version lists for $149.95. It is identical to the IBM version. This is a very fair price in my opinion. I would not hesitate to recommend dBMAN to anyone wanting an incredibly useful tool for data management. The product itself is delivered on two single-sided disks, unprotected. One disk is the dBMAN interpreter itself with related files. The other is a snappy little tutorial disk, that gets you going with the rudiments of using dBMAN. The tutorial disk also includes some sample dBMAN command files for mailing list management. I ignored them in favor of writing my own for the sake of flexibility, and as an exercise, but they will give you the flavor of programming. By all means, print out the command files on this tutorial disk. Read through them. Study the processes and logic involved. This is a great way to learn! The dBMAN package is an attractive grey slipcase, inside which is the hardcover 3-ring binder holding the documentation. Ah, the documentation. It's not the best. I found it sketchy on details regarding command syntax. This product is definitely not dBASE compatible, I assure you, though everywhere you read that it is. You can use a dBMAN command to CONVERT a dBASE data file to dBMAN format, but the programming languages are SIMILAR, not compatible. For example, in dBASE, the command to delete a dBMAN by Versasoft - 2 - An Initial Review file is "ERASE". In dBMAN, the "ERASE" command merely clears the screen! There are numerous other differences in the language, but they are similar enough so that you would benefit from buying a dBASE III programming book at a bookstore and studying it a little to get the hang of things. If you are a novice, you will not be able to dive into dBMAN programming without a substantial investment in man-hours spent deciphering the documentation. Although the manual is accurate, it is not as complete as it could be, and does not have the best organization. I remember looking hard to find the operator that would allow me to chain a command line over more than one line. It was buried in a section of the manual titled "File Types"!!! There is no "LABEL" command. This means that you will have to write your own label maker programs. Label programs are among the simplest to write, so this is no big loss in my view. There is no text editor built into the product. Please note that using the product from command level does not require an editor. You simply enter commands one after the other. It's the programming that requires an outside editor. This can mean constant loading of your editor, then dBMAN, exiting, re-loading your editor, composing code, re-loading dBMAN, etc. I use a simple technique to simplify things. On my 1-meg 520ST I create a 550K ramdisk with Solapak, copy the editor files and DBMAN.TTP to the ramdisk with Solapak's COPY2RAM program, and work out of the ramdisk. My data and program files are on a floppy. Switching between dBMAN and an editor is a breeze when done at the speed of a ramdisk. Be careful in your choice of an editor. It must be capable of producing pure ASCII files. I used Final Word exclusively until I started using "procedures" in my programs. There was never any prior indication of trouble, but using the SET PROCEDURE TO command in any command files created with the Final Word caused dBMAN to crash to the desktop. This problem gave me countless hours of grief until, on a lark, I loaded my procedure file into Regent Word. Lo and behold, the last byte in the file appeared on my screen as a non-ASCII character. When I had called Versasoft for help, one of the questions they had asked me was if I was certain the file contained only ASCII characters. When you save a Final Word file, it puts an odd character (a non-ASCII character) at its end as an end-of-file marker. This is all it took to bomb my dBMAN programs. It was a hard problem to troubleshoot, as that darn non-ASCII character does not appear on your screen in the Final Word. I now use another editor for dBMAN programming. Remember one command above all others: SET TALK OFF. If you run a program and don't include that statement, each line of your code will be reflected onscreen in the command line (a reserved area at the top of the screen). This can be a help in the debugging stages, but slows down execution to a snail's dBMAN by Versasoft - 3 - An Initial Review pace. My club membership list program runs in seconds with talk off, but with talk on it can take 15 minutes! The "@SAY--GET" commands don't permit a "RANGE" clause, leaving it up to you to hack data input validation. This can be done with a sprinkling of IF commands, CASE structures, or other techniques. It can also be done with a GETFILE structure. The GETFILE is called at the level of the program that called it, so local variables are available to the GETFILE. You can do almost anything you want in a GETFILE, but the primary use would be to contain the code to validate the input a user may be typing when using your application. There are provisions for PICTURE clauses. There are also some nifty commands for formatting menus (VMENU, HMENU, BOX, etc.) but I have not tested them yet. dBMAN does not use GEM at all, so forget about using a mouse for anything. Support? The manual states that Versasoft will try to respond to any written inquiries but must charge for telephone support at the rate of $25 for 6 calls of up to 5 minutes each. Sheesh. I hope this narrative is helpful to would-be purchasers. I highly recommend the product. It works, appears to work well, and is virtually alone in the ST software world. Nothing but H&D Base comes close to its versatility and power, but whether Mirage will survive to support H&D Base is anybody's guess. Do yourself a favor. Buy almost any book on dBASE III before you novices get into dBMAN programming. You won't regret the extra expense! If you have questions or need some help, leave public messages to SYSOP (that's me!) on the H.A.S.T.E. BBS. Myself or one of the other dBMAN fanatics will respond. I would like to see the club develop a series of articles to supplement the program documentation. Sophisticated products like these, being sold to as new a market as most of us ST'ers represent, almost require such user support. Contact me anytime at the HASTE BBS, 713-955-9532, 24 hours, 300/1200/2400 baud. dBMAN by Versasoft - 4 - An Initial Review