AD2 2001 Toolkit for Rapid Database Application Development with Clipper and Zachary

You get a newer Zachary, too!
Home Page Details Latest Version Order Now! Tech Support Links
AD2

Frequently Asked Questions      Download Demo      Other Resources

Zachary

The AD2 Toolkit includes an upgrade to Zachary, described below.

If you’re new to Zachary, and wonder what it’s all about, click here for general Zachary information...

AD2-Zachary Upgrade

The AD2-Zachary upgrade includes the Zachary 2.5 upgrade at no additional charge for users who need it. (The Zachary 2.5 upgrade is no longer available from ZAC.)

Zachary Enhancements include:

  • Automatic Network Workstation Configuration. Zachary programs used to challenge users because a unique “User name” had to be set in a DOS environment variable. Now that’s handled automatically.
  • Descending Indexes are now supported. Now you can browse a date-indexed table with the most recent dates at the top!
  • Table rebuilds (with the "u" parameter) are faster. Now your program will rebuild only those tables and indexes that have changed!
  • Zachary functions have been changed to address printer ports in a manner that will work under Windows 95, 98, Me, NT, 2000, and XP.
  • Remember that occasional system crash when running Zach1, with a mysterious corruption of the MOPTS index? Zach Tech Support always suggested it must be your computer, or Clipper, because their programmers couldn't find it. We found it, and fixed it. NO MORE CRASHES!
  • Now you can edit field numbers in the table browse, or in the screen, and all screens will âe kept up to date!
  • Did you ever discover that a large application (over 128 procedures) could not be compiled and linked with the speedy RMAKE option, and you had to use the slower batch file? Now the RMAKE script is written differently for large applications. If this affects you, you will be amazed at the time you save with the shorter compile link cycle!
  • Has anyone asked you to get rid of the Accept/Retry/Cancel popup, or to change it to default to Accept? Now you will do that easily, and can even make it a runtime parameter so it's easy to change.
  • We added garbage collection during indexing so huge tables will reindex without crashing. While we can't guarantee Clipper reindexing, we can tell you this helps. One of my clients has huge tables, with several million records, and I always panicked every time a reindex was necessary. Since we added this "fix," we've and no more problems!
  • Added "Program Following." If you have more than one program in a directory, both ZACH1.EXE and ZACH2.EXE will load expecting the last edited program to be loaded again. (That program selection will be highlighted when the program browse appears.)
  • Adding fields, the Field Title will default to the field name. You can easily change this, of course, by typing whatever you want, but now when adding fields like "CITY" you won't have to retype "City" so often. (ZACH2 will also pick up the Field Title for the Help Message and AD2 will pick Field Title up for the Help Screen, unless you put something else in there. This really speeds up adding fields!)
  • Now moving between records from the edit window (with [Ctrl-PgUp] and [Ctrl-PgDn]) maintains the user selected browse order.
  • Now when you edit a field number, the screens in the parent procedure are updated. This is now the preferred method, as everything is updated.
  • Editing a field or procedure turns on all applicable generation flags in the program. ZACH2.EXE will turn them all off when generating a program, and ZACH1.EXE will turn them back on as needed.
  • Now when adding a B-Proc the Browse Message will default to that in the ZACH1.INI file.
  • Using Mr Edit to edit help screens and U-fields, changed "Indenting" to default OFF. If you want this to default ON, make an entry in ZACH1.INI to switch start-up default of [Mr Edit] "Indenting" to ON for those who like that feature.
  • If a specified directory for generated files does not exist, ZACH2 now tests and creates the directory if possible.
  • When you rebuild a table, index files are now deleted before opening the file... to eliminate errors where a key field has been removed from the file.
  • After rebuilding tables, the default RDD is reset to the defined default.
  • FUNCTION10() no longer leaves out a file.
  • Browse messages may now include brackets.
  • Now, if you don't have a help message, the field title is used.
  • Corrected ZFREE's inability to understand double-quotation marks.
  • ZBuild() -Function generated to return a string indicating the build number and date the code was last generated. This is useful in an "about" window for version control.
  • ZAppTitle() -Function generated to return a string containing the Application Title.
  • Changed ZFREE generation to exclude Help Topics (AD_HTOP) from ZFREE report structures.
  • Changed report generation to post a chr(12) for page eject at end of pages.
  • Changed behavior in E-Procs that call other E-Procs. Zach was writing a call to openfiles() that was exclusive, then adding a ZFL() to lock the file. I changed it to open shared, then issue the file lock. You can preprocess away the ZFL() to avoid the file lock where appropriate.
  • Changed default to add ZACH2 (or ZACH253) to the overlayable lib list rather than the non-overlayable list.
  • Changed ZACH2.EXE to generate a help id parameter for ZWORD() calls so that the current field help info will appear when you press F1...
  • Under a rather strange combination of programming errors, openfiles() might not have selected the target fiìe on exit. Fixed.
  • Added an entry in the application's master .CH file that defines Z_YEAR as the year the system was generated, so it may be used in user code.
  • Changed the screen generation routine to spot ZZZZ painted on a screen and replace the code with a reference to Z_YEAR. Now  you  may put a copyright notice on the screen and it will automatically reflect the year the code was generated. Instead of painting Copyright 2001 on a screen, now just paint Copyright ZZZZ. ZACH2 will translate this properly!
  • Added a call to Nanfor library functions to release the Time Slice for use in Windows environments. This is generated only if NANFOR and CPMI are in the library link list, and requires NANFOR version 3.05 patch 1A.
  • Added the ability to load custom code at the beginning of every generated program by way of entries in the ZACH1.INI file, under the section heading [Initialization Code]. Each line must be labeled differently, i.e.,
              1= function(1)
              2= function(2)
  • zget() -Modified so when entering a date the user can use the [+] and [-] keys to change the date value. Also modified so when editing a time string (picture "99:99:99") the user can use the [+] and [-] keys to change the value by full minutes with each keystroke This give an application a "Quicken" style data entry.
  • zword() -Modified to pass help id, F1 help will work.
  • zbrowse() -Modified to work with ad_BrSet(), ad_append(), and ad_zbrowse().
  • zeditno() -Clicking on a Parent Menu will now select the expected menu.
  • zshift() -Now moving between records from the edit window maintains the user selected browse order.
  • zspoolon() and zspooloff() -Changed Zach functions which used SET PRINTER TO to first SET DEFAULT TO "" to correct for occasional strange printing errors reported by some users with Windows 95 or with Novell VLMs.

Clipper 5.2e and 5.3b -- This version remains compatible with Clipper 5.2e, as well as 5.3b.

[Zachary] [Wizards] [Library] [Features] [Report Writer] [Samples] [Info] [Compatibility] [FAQ]

Tortuga Tortoise™

Richard Hamilton Associates
Box 50186, Phoenix, AZ 85076 USA • Tel. (602) 438-2345   Fax (480) 287-9233
Another Dimension, ADS/Interactive, and AD2 are trademarks of Richard Hamilton Associates.
Zachary and Zachary the Software Machine are trademarks of ZAC Corp.