Database Append and Copy Utilities

by Finian Lennon

Finian first made these utilities generally available in March, 2001, with an acknowledgement to Jerry Brightbill, who first posted similar utilities on the Alpha user message board. Now (June, 2002) Finian has updated and improved on his original effort.

There are 2 sets of utilities here:

  1. The database copy utilities allow you to copy menus, toolbars, scripts and functions from one database file (.adb file) to another, as well as copy forms, browses, and scripts from one table or set to another.
  2. The table append utilities make short work of copying live data from an existing application to a new, updated version of the application, with restructured tables.

Finian writes:

In the 18 months since I posted the first version of these utilities some folks have been kind enough to drop me the occasional note telling me they found them useful. For myself, I knew that the interface was awkward and that I needed to revise the whole approach to how the process was managed.

Supporting a large scale application with many users such as we do at OMS Comp (www.omscomp.com) requires a set of tools that don't necessarily come with Alpha Five. My efforts to develop the first version of the utilities were the first, baby steps in our "tool development" program. This start has been greatly enhanced in the past year by my colleague Tim Joseph who wrestles day to day with client support and upgrade issues. Together we are now focused on the pursuit of the "Holy Grail" of OMS support - development of a set of fully automated, application upgrade and patch tools.

The basic idea of the utilities is to have a way to transfer objects (layouts, menus, toolbars) between applications without needing to overwrite the entire data dictionary of the destination table, set or database. In this version, the multiple forms/buttons of the original have been greatly simplified. The object list can now include ANY item stored in the data dictionary, including operations. It also allows you to select multiple objects of the same type for processing.

The included table, util_obj_list.dbf, contains a list of object types that are stored in the data dictionary. The table contains marked records which are not included in the drop-down list of objects in the control form. Perhaps you will find, as we have, that a little lateral thinking can help you use the utilities to better manage your applications.

For example the original utilities never envisioned touching the FRUL (field rule) records. However, Tim figured out that he could speed up our upgrades by batching the append processes, but to do that he needed to avoid having to manually drop field rule autoincrement and validation rules. By using the techniques shown here to delete and restore the FRUL records prior to and after appends, he has been able to do just that - plus a lot more. In fact, his enhancements have dramatically reduced the time taken to upgrade the typical client site.

The "Append" form has been updated. The append master/transaction table selection is easier than before and Tim's method of dropping/replacing field rules has been incorporated into the interface. A significant bug has also been fixed. The original version did not take into account A5's handling of table names with spaces. This version should handle any file no matter how many words it contains. Having said that, I have to ask,why anyone would have a table name with spaces? Nature abhors a vacuum, and A5 abhors table names with spaces. How otherwise can one explain the "anomalous" way it handles those names during an append, and I'm not just referring to the substitution of underscores!

I hope those of you who need to support remote applications will find these tools useful. Let me know of any errors you find or enhancements you make.

The control form has a disclaimer. Please read it carefully!

Finian Lennon 06/02/2002

PS All the work on this version was done in V4.5 but should run and work fine in V5, and does in limited testing so far. Given that V5 has a plethora of new methods to make this sort of manipulation easier, all future "tools" development is being done in V5.

You can download Finian's utilities by clicking here.

6/8/02

Don't forget, we need your feedback to make this site better!

Return to home