I'm working on my 'essentially unused by anyone but me' package query-writer. It is annoying to use this package, because even though it writes all the basic pl code for the package so you can create/drop the package, plus the new/update/delete functions, you have to use a poorly designed UI to configure everything, which is also time consuming and mind numbing.
Anyway, I thought, I'm writing pl based on data stored in nsv's, why can't I just write tcl procs that do the same thing through dml statements instead?
The current query-writer is pretty basic. Object packages have to be directly derived from acs_objects, so it was pretty easy to change the query-writer to do what I wanted, I just replaced one proc (for the __new function writer). I also wrote a tcl proc to create an acs_object, that is acs_object::new.
This should make things pretty simple for upgrading/developing packages. When the datamodel changes, you just add the new field, and restart the server. You don't need to edit and fiddle with the updated pl functions.
Does this sound like a useful way to go? The big benefit is in the update pl code. This is kind of hackish in the first place. Each attribute had to be tested to see if it was not null, then independently updated, creating a bunch of wasted space for every update. The new dml update would be very efficient compared to using functions. Also the 16 parameter limit will go away for individual functions, although query-writer could handle 32 attributes overlapping any number of functions.