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



It appears to me that this is in a loop because you are continuously doing a
SETLL to the file.  You are not progressing through the records.  You would
need to do a READE to work your way through the records and eventually get
to the end.

Your code might look like this.

C                   EVAL      KF_LINE = 0
 *
 * Set File Pointer
C     FILEKEY15     SETLL     FILE15
 *
 * Notes Records Exist in File
C                   IF        %EQUAL(FILE15)
 *
 * Find New Line # for Note #
C                   DOU       %EOF(FILE15)
C     FILEKEY15     READE     FILE15
 *
C                   IF        %EOF(FILE15)
C                   LEAVE
C                   ELSE
 *
C                   EVAL      KF_LINE = KF_LINE + 1
C                   ENDIF
 *
C                   ENDDO
C                         ENDIF

Hope this helps.

Dawn Siegrist
Sr. Programmer/Analyst
Penske Truck Leasing Co.
610-775-6243
Dawn.Siegrist@xxxxxxxxxx


-----Original Message-----
From: fkany@xxxxxxxxxxxxxxxxxx [mailto:fkany@xxxxxxxxxxxxxxxxxx]
Sent: Thursday, November 20, 2003 11:35 AM
To: RPG400-L@xxxxxxxxxxxx
Subject: %EQUAL in a DOU loop



Hello,

The program seems to crash in the routine below.  I know that there aren't
any records with 999 lines of notes.  I'm thinking that maybe the program
keeps looping.
Am I missing something in the code below that would cause this routine to
keep looping?

The program crashes with this message, "Receiver value too small to hold
result.
The target for a numeric operation is too small to hold the result"

Thanks,

Frank

C                   EVAL      KF_LINE = 1
 *
 * Set File Pointer
C     FILEKEY15     SETLL     FILE15
 *
 * Notes Records Exist in File
C                   IF        %EQUAL(FILE15)
 *
 * Find New Line # for Note #
C                   DOU       NOT %EQUAL(FILE15)
C     FILEKEY15     SETLL     FILE15
 *
C                   IF        NOT %EQUAL(FILE15)
C                   LEAVE
C                   ENDIF
 *
C                   IF        %EQUAL(FILE15)
C                   EVAL      KF_LINE = KF_LINE + 1
C                   ENDIF
 *
C                   ENDDO

_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.

As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.