× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



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 thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.