Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!uakari.primate.wisc.edu!samsung!munnari.oz.au!mel.dit.csiro.au!yarra!technix.oz.au!technix.oz.au!ahl From: ahl@technix.oz.au (Tony Landells) Newsgroups: comp.databases Subject: informix input array Message-ID: Date: 12 Feb 91 08:18:28 GMT Sender: ahl@technix.oz.au (Tony Landells) Distribution: comp Organization: TechNIX Consulting Services, Melbourne, Australia Lines: 39 Well, I still seem to be fighting things, which suggests to me that I'm doing something wrong, so I thought I'd ask for help again. My problem is that I have a number of tables that only really contain a short code (for data entry) and a longer description (for reports, queries, etc.). Given that each record EASILY fits on one line of the screen, I've been trying to use an INPUT ARRAY statement to manage the data. The other important thing about these tables is that a lot of other tables will be dependant on them. Now, I think I've got around the problem of people hitting the insert key, moving away, then coming back and entering data "unnoticed" by specifying in the form file that the fields are REQUIRED. However, how do other people handle the following: user hits delete key, but the code is in use and therefore the record cannot be deleted--can you catch this in a BEFORE DELETE clause and force informix to STOP the deletion operation? user types over some information, changing it--if the old code isn't in use, no problem (just like a delete followed by an insert), but if the old code is in use, you need to propogate the change... Do people just take copies of the data in a BEFORE ROW (or FIELD) and then compare the values afterwards to determine if it's been changed? Am I barking up the wrong tree? Should I force the users back to a "one record per screen" approach with add/change/delete menu options? This would seem like a BIG waste of screen space, as well as making the process a lot slower for the user... Also, in the stores example code, they use the function fgl_drawbox() (or something like that, anyway). I note that this is in one of the libraries, but not documented anywhere. Am I missing some documentation, or are they using unsupported calls? Thanks in advance, Tony.