--- title: "DBEasy – New Version 1.6 Review" type: "article" slug: "dbeasy-new-version-1-6-review" url: "http://localhost/article/dbeasy-new-version-1-6-review/" markdown_url: "http://localhost/article/dbeasy-new-version-1-6-review.md" published_at: "2020-10-27T17:15:52+00:00" modified_at: "2026-10-22T23:43:49+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Sometimes it takes years to appreciate the many features which a program author has thoughtfully incorporated in an application. DBEasy [Wood and Wind Computing, RR3 Box 92, Cornish, NH 03745] is certainly a well designed program that has rightfully been well received. With the program undergoing an extensive re-writing, it deserves a renewed look. For…" post_tag: - name: "QL" slug: "ql" taxonomy: "post_tag" url: "http://localhost/tag/ql/" model: - name: "Sinclair QL" slug: "sinclair-ql" taxonomy: "model" url: "http://localhost/model/sinclair-ql/" indiv: - name: "Al Feng" slug: "al-feng" taxonomy: "indiv" url: "http://localhost/indiv/al-feng/" publication: "ZXir QLive Alive" publication_r: id: 10286 title: "ZXir QLive Alive!" type: "periodical" url: "http://localhost/periodical/zxir-qlive-alive/" authors: "Al Feng" volume: "6" issue: "1" issues_articles: - id: 26821 title: "ZXir QLive Alive! v6 n1" type: "issue" url: "http://localhost/issue/zxir-qlive-alive-v6-n1/" pages: "12-15" pubdate: "Spring 1996" archive_link: false volumeissue: "v6n1" --- # DBEasy – New Version 1.6 Review Sometimes it takes years to appreciate the many features which a program author has thoughtfully incorporated in an application. DBEasy [Wood and Wind Computing, RR3 Box 92, Cornish, NH 03745] is certainly a well designed program that has rightfully been well received. With the program undergoing an extensive re-writing, it deserves a renewed look. For those not familiar with DBEasy, it is a front end program for the Archive [Psion] database program which is available either for QDOS/SMSQ (v1.6) or for DOS (v1.3). While there were minor feature differences between the two versions in the past, they now appear to be almost identical in function and operation. Those not familiar with DBEasy may think that it is simply a menu program for loading and viewing databases. It is more. It is a program for creation and management of any database you may wish to create, use, and maintain (for example, altering/updating fields and maintaining by adding/deleting records). ### General Database Design Philosophy From what I have gleaned over the years, there are two types of databases — hierarchical and relational. While the hierarchical database came first, most modern databases are now relational. Archive is a relational database with an integrated, procedure based programming language. Hierarchical databases usually seem “better” to the novice because they are designed with a non-discriminating, “flat” field structure. Essentially each field (or, screen) is a record, and conversely each record is a field, thus allowing any piece of data to be put anywhere in a given record. In essence, a hierarchical database record can be thought of as one in a set of electronic file cards. Thus, to use a hierarchical database, you just name (create) the database file, open it, and then start inputting whatever you desire into any record. In theory, you could simulate a hierarchical database by creating a single field database within a relational database. In Archive, you would: ``` CREATE "flat" flat$ ``` After this, you would use the SEDIT (i.e., screen edit) function to create the screen with a single field essentially taking up as much of the usable screen as you wanted; and then, SSAVE (i.e., screen save) that screen. You would still OPEN, SLOAD (i.e., screen load), ALTER, and CLOSE the database as you would a normal Archive database. If you were inspired, you could EDIT a program to expedite navigating your “flat” field database. Because a hierarchical database does not have fields, per se, it is not possible for the user to easily, or consistently manipulate the data of individual records. For example, it would not be easy to use a “flat” field database for printing names and addresses on labels unless the entire contents of each record was comprised of consistently placed names and addresses. My understanding is that a simple FIND query is not handicapped by searching a hierarchical database. The HYPERCARD database (APPLE Macintosh) appears to be a hierarchical database which has user linkable elements. The selectively “programmable” links and inherent graphical nature of the database provide an extended versatility not available with a simple, hierarchical database. Relational databases differ in that the individual fields (text or numeric) must be pre-defined BEFORE data can be input. The need to pre-define the fields can be particularly discouraging for the novice; and, the same novice may wonder why or how relational databases have become so prevalent. In a relational database, the OUTPUT of various, individual fields can be “manipulated” so that it suits multiple needs; thus, one set of data can be used and output in more than one way with differing fields included-or-excluded in a particular output. The unqualified advantage of a relational database becomes most apparent when you have the opportunity to use a front-end program such as DBEasy. As designed, DBEasy allows you to print: 1) the individual record; 2) an address label (if applicable); 3) a line of user-specified fields; and/or, 4) a “custom” output (a future article). The output can be to your printer, the screen, or a file (for import to QUILL, for example) when the request is initiated from the MULTIPLE MENU screen and to the printer only from the SINGLE MENU screen. ### THE DESIGN DBEasy uses a MAIN MENU which allows the user to branch to ten other functions: ``` Single menu w/ find,search,insert,alter,delete Multiple menu w/ select,order,print,copy,export Log menu w/ add,change,remove,import,capture Backup backup the current database sWitch switch the active database Help access the DBEasy help system DIRectory w/ copy,delete options Configuration set video or date style Rescreen check database / redraw screen Quit DBEASY all done ``` In earlier versions you would navigate this screen by pressing a number key (1 to 9) to put the pointer arrow on a given line, or by using the up-or-down cursor key to move the pointer up or down from line to line; and, pressing ‘0’ would provide a fast branching to the exit screen. With the most current version, the HOT KEYs developed in QLERK are now available for use in DBEasy — generally, pressing the first letter of the KEY word will move the pointer arrow to the line or option; or, activate the options within the secondary menus. Each version change over the years has made DBEasy more convenient to use; and, I would guess that it only took about five minutes to become comfortable with the new HOT KEY feature. A welcome change is the increased facility to quick “sWitch” the active database from one to another. A “sWitch” can also be executed from the SINGLE and MULTIPLE MENU as well as from the LOG MENU (the LOG MENU was previously named “Switch mode”). When using the “sWitch” routine, you do not have to type in the entire database name, only enough characters to distinguish one database from another. Thus, when I want to access my “PLATYPUS_dbf” I do need to type in at least “PLAT” since typing in “P” or “PL” or “PLA” will always locate the “PLANNERX_dbf” first. If I were to remove the “PLANNERX_dbf” from the drive, then simply typing “P” would result in DBEasy querying me whether or not “PLATYPUS_dbf” was the one I wanted. In the past, if you wanted to change the date format at the top of the MAIN MENU screen, you needed to edit and re-save the DBEMM code. This is now an option which can be done from the main menu. There are now three formats for displaying the date on the MAIN MENU [ YYYY/MM/DD, MM/DD/YYYY, & DD/MM/YYYY ]. The HELP_dbf file is now available as a HOT KEY from almost any point in the program by simply pressing ‘H’ . ### THE DESIGN IN PRACTICE All the databases which are CREATEd have the same fields — twelve text fields (date_$, key_$, s1_$, et cetera) and six numeric fields (n1_, n2_, et cetera). While I originally thought this would be limiting, I have found that this is a good compromise for most databases. In day-to-day use, one of the apparent benefits of using DBEasy is that it eliminates the need for pre-defining the fields of each database. If you don’t like the labels, you can change them later. The “date_$” field is automatically filled when you INSERT a new database; but, any other text data can be inserted therein. The “date_$” was automatically updated to the current date in prior versions, but this has been changed with the current version whereby the current version maintains the record’s “original” date — as I generally did NOT want this field changed in the past, I did find the automatic updating of the field disconcerting; so, I’m glad that the newest version of the program keeps this unchanged. If necessary, the DBEasy program (i.e., DBEMM_pro) can be modified to accommodate more or less fields; or, as demonstrated with the newly incorporated, ADDRESSX_dbf, the specific screen can be customized (using SEDIT & SSAVE) to accommodate different field_lengths. Of course, the labels assigned to the fields can be changed at any time; and, a new option lets the user create new databases by “capturing” data from existing DBEasy database files. When you choose the MULTIPLE MENU you can view up to ten LINEs of truncated RECORD data per screen page. In the past, the LINE represented three user selectable FIELDs of data. This has been greatly improved with the current version being capable of displaying at least seven fields of variable length. Each LINE format can be exclusive to a particular database. ### The CAPTURE Pitfall? There is a very small inconvenience that you have to suffer if you are upgrading from a previous version -the DBELOG_dbf contains different data than in previous versions. Presumably, it is the difference in structure which now allows the user to “capture” data from already logged databases when creating new database files. It seemed that the only files that did transfer were my VARIOUS_dbf files and the DBEASY_scn that I use! However, after you get over the shock of not being able to simply the transfer various ancillary files along with your VARIOUS_dbf files you will quickly appreciate the “capture” function; and, the setback is minor compared with the gain. ### Customization And Cosmetic Modifications You may not have to make any changes to the program to use DBEasy; but, if you do, most customization is now easier, or faster, to implement. Of course, the single RECORD screen can simply be copied from your previous DBEasy program disk (if it is different from what is provided) — for example, the colors of my single RECORD screen complement the MAIN MENU colors I had chosen to suit my personal sensibilities. Okay, as good as DBEasy is, it probably isn’t “perfect” for you as it comes out-of-the-box any more than it was for me. Based on the earlier DBEasy versions, I knew that I would have to “go inside” and modify the print option to add a few “LPRINT” statements to adjust the printer’s vertical spacing for the labels which I currently use (4″ x 1 7/16″). Of course, the first thing I had to do was to (ESC)ape to Archive’s command_line and enter the edit mode and then edit the proc(s) [consult the QL USER GUIDE if you don’t know how to do this]. ``` proc easy_out_lbl if ns: print at ml,12;rs;: endif : let i$=s1_$: if s2_$<>nul$: let i$=s2_$+sp$+i$: endif lprint : lprint i$: lprint s3_$: if s4_$<>nul$: lprint s4_$: endif : lprint s5_$;", ";s6_$;" ";s7_$: lprint : lprint : lprint : lprint tab 15;" ": if s4_$=nul$: lprint : endif : let line=6 endproc ``` In addition to adding “lprint” statements, I also omitted the statement which printed field “s9_$” which is used for “country” since I generally use “s9_$” for other comments. All of the remaining changes described here are cosmetic to suit my own sensibilities and do not enhance or improve the operation of the program. The least significant change I made was to the QUIT page. This was the easiest to implement since it essentially involved adding a long enough string of periods (“……”) to tidy up the appearance. ``` proc quiter heady;"Quit DBEasy":yorn;0, "Quit DBEasy program ......": if ans$="n":start: stop : endif :yorn;0, "Quit ARCHIVE, also .......": if ans$="n": new : else : quit : endif endproc ``` After that, there were some other cosmetic changes that I made to the MAIN MENU and LOG MENU because I liked the”look” of the previous versions (at least, the way I had them) better than the current appearance. The changes to the MAIN MENU were primarily done to the header related procs. ``` proc arrow_mess;l,m$ let i=(80-(36+len(m$)))/2 paper sink ink spap print at l,1;rv$; tab i; "Use arrow keys or Hot Key to choose "+m$; tab 79; print at l+1,1; tab 25; " to select or 0 to exit"; tab 79;rv$; paper spap ink sink endproc ``` Changing the “arrow_mess” tidies up the MAIN MENU box by coloring the related lines to the same color as the outer field. Modifying the “heading” was mostly rearranging the text and the “heady” made the banner the full width of the screen, as on earlier versions. ``` proc heading heady;nul$: paper hpap: ink hink:runtime: let j=ans:timey print at 1,2;upper(sys$);" MAIN MENU"; ink sink; at 0,36; today$; tab 54;"Day ";day;" of "; val(date(0)); ink hink; at 1,37;ans$; tab 54;j; " minutes since start" paper spap: ink sink: if begcnt=-1: let i$="-": else : let i$=str(begcnt,2,zer): endif print at 4,2; ink spap;desc$; print at 4,52;"Module : DBEmm"; at 5,52; "DEVice : ";pd$; at 6,52;"Database : "; sf$ print at 7,52;"Records : ";i$ endproc proc heady;i$ paper spap: cls : paper hpap: ink hink: print at 0,0; tab 80; at 1,0; tab 80; at 2,0; tab 80; at 1,2;i$;: paper spap: ink sink: print at 4,0; endproc ``` Still in a “retro” mode, changes to the LOG MENU were next. The changes to the LOG MENU were done to, you guessed it, log related procs; and again, the changes were made to resemble the appearance of earlier versions. The simple part was to remove the statement which indicated the “active database” in the “log_menu” procedure by truncating the fifth line. ``` proc log_menu ...... print at 17,3;"of ";npg; tab 79; at 18,1;rv$; tab 79; ...... endproc ``` The real trick was to highlight the active line to echo the previous versions. Of course, the hardest part was to actually find which procedure performed this function! Not surprisingly, it is in the “log_show” procedure. The asterisk (“*”) has been replaced with the greater_than sign (“>”), but can be eliminated since it is now superfluous for most video configurations. ``` proc log_show;pg let k=10*(pg-1):position;"l",rl,k: let j=5: print at j,zer;:usel while not eof("l") and rl33: let i$=i$(1 to 33): endif : let j$=user_$: if len(j$)>10: let j$=j$(1 to 10): endif : if act_: paper sink: ink spap: let k$=" >": else : paper spap: ink sink: let k$=nul$: endif print sp$;rl;k$; tab 4;sp$;sd_$; tab 5+dl;sp$;sf_$; tab 23;sp$;i$; tab 58;date_$; tab 68;j$ tab 80: ink sink: paper spap: let j=j+1:plnext: endwhile box;j,zer,14,80,nul$: let j=16 paper spap: ink sink print at j,6;pg;" "; endproc ``` After you make each change, you will want to see if it either looks right, or “works” the way you want it to. Of course, you will also want to save it to a working copy of the program by inputting: ``` save object "DBEmm" ``` I made the same changes for both the QDOS and the PC version of the program. In each case, you will want to compare and insert/change lines to match what you see listed. After you have made changes, you can further modify the procedures to fit your sensibilities instead of mine. ### GUI — Phooey! There are alternatives to Archive (more so for the DOS world). The essential thing to know is that DBEasy is NOT handicapped by being tied to a text-based program. Now, I realize that a LOT of people LIKE using a mouse — you know, trying to move the pointer to a viable spot on the screen as if it were a game; but, I’m not one of them. In day-to-day use, you only need the cursor keys and ENTER key, or a mouse, to navigate the program. Generally, the only time you need to use the alphanumeric keys is when creating/deleting a new/old database, or when making changes within an existing database. If there are some situations when you need a secure environment, then a copy of DBEasy running on a QL without a keyboard (of course, with a pointer input device) would probably be more secure from tampering than a GUI database which would probably remain vulnerable to change or removal. ### THE BOTTOM LINE If you aren’t using Archive, yet, then you should consider getting a copy of DBEasy since it will make using a D(ata)B(ase)Easy. Because I come from a long line of read-the-instructions-last people there are certainly features and functions which I have failed to discuss adequately (or, at all) because I probably have not used them, yet. For those who like to read, there is an extensive DBEasy_doc which is obviously a good reference tool for using DBEasy, too. The QL disk contains an XCHANGE compatible version. Other than to say that the XCHANGE version is smaller than the “normal” version, I cannot indicate what the difference is. The “normal” QL and PC versions are essentially the same. An additional “_dbf” file is now included (PLANNERX_dbf) which can be used as a daily planner. Unlike PC users who currently do not have access to Archive, DBEasy is reason enough to use Archive, and would be reason enough for database users to use a QL or QXL as their hardware platform. Before I started to use DBEasy, I would use the back pages of my check book register for names and addresses! At the time, it just seemed to me that with less than 50 names/addresses/phone_numbers of various sorts that it was far easier transcribing those names (as needed) than to learn to use Archive. Were it not for DBEasy, I am certain that I would still not be using the Archive program, or any database program for that matter. If you are using a previous version of DBEasy, I am sure that you will not regret upgrading to the newest version. The HOT KEYs, alone, make it worth the effort to transfer files and make whatever changes need to be made. New users need to know that DBEasy is both EASY to use and EASY to modify if need be; that, “sample” databases are included that can be amended with your own data; and, that your QL requires memory expansion beyond 128K to run DBEasy. The DBEasy program costs $24.00 (NA); upgrades cost $7.00 (NA). HAPPY TRAILS, AND COMPUTING, TO YOU …