|
On 10/12/05, Barbara Morris <bmorris@xxxxxxxxxx> wrote: > > > ... > > I have a module that attempts to create a record in a uniquely-keyed > file, > > and it uses a DOU %ERROR loop (it has been discussed here before). It > uses > > SETGT, READPE to detect an existing record, and if it finds one, it > > increments the key component by one, and WRITE(E)'s. For some reason, it > > went haywire and created five digits of records in the file. I am > wondering > > if, at the end of the loop, %ERROR was on, yet a record was written > anyways? > > Could you explain more (some pseudo code?) about how your loop is > supposed to work, and what exactly happened when it went haywire? The module source: ------------------------------- Dou Not %Error; // Find next memo seq# for member SetGT(E) (Family:Member) MmoRec; ReadPE(E) (Family:Member) MmoRec Mm; If %Found(Mmemo); Mmo.Mmseq#=Mm.Mmseq#+1; Else; Mmo.Mmseq#=1; EndIf; Write(E) Mmorec Mmo; EndDo; -------------------------- The MMEMO file is uniquely keyed by account number and sequence number (MMSEQ#). I have since written a dedicated service program that handles this operation a bit differently: --------------------------- Dou Not %Error; SetGT(E) (Family:Member) MmoRec; ReadPE(E) (Family:Member) MmoRec M; If %EOF(CMmemo); Mo.Mmseq#=1; Else; Mo.Mmseq#=M.Mmseq#+1; EndIf; Write(E) MmoRec Mo; EndDo; -------------------------------------- But at the time the first program went haywire, the above service program wasn't being used by the program. There are no triggers on the file. I don't have detailed data about when the error happened (I am not currently analyzing based on the status code, just using %ERROR). Thanks for looking at this. -- "Enter any 11-digit prime number to continue..." "In Hebrew SQL, how do you use right() and left()?..." - Random Thought "If all you have is a hammer, all your problems begin to look like nails"
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.