|
Alan,
Assuming you want to resort the entire file each time based on the sort order,
you could use embedded SQL with the PREPARE statement.
You would build the SQL statement in your program based on the desired sort
order, then use PREPARE to convert it to an SQL statement.
You use the prepared statement to declare the cursor and control all FETCH.
If you use single record fetch, then you just control the reads the same way as
you would native I/O.
If you use multiple row fetch with a MODS, you would load the subfile with the
first batch of records, then do another fetch to load the MODS with the next
batch, but do not load them into the subfile unless the user requests the next
page.
This way, you can test if any records were retrieved after you loaded the
subfile to determine if you were at the end of selection.
Jeff Young
----- Original Message ----
From: Michael_Schutte@xxxxxxxxxxxx
To: RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
Sent: Thursday, August 3, 2006 11:00:09 AM
Subject: Re: Even more embedded SQL....
Arrn is relative record number. It will have the number of records
currently being displayed. And yes that is for 10 records per page.
Alan Shore
<AlanShore@xxxxxx
om> To
Sent by: RPG programming on the AS400 /
rpg400-l-bounces+ iSeries <rpg400-l@xxxxxxxxxxxx>
michael_schutte=b cc
obevans.com@midra
nge.com Subject
Re: Even more embedded SQL....
08/03/2006 10:58
AM
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
Thanks Michael. So I had the right idea.
I'm assuming that this is for displaying 10 records on a sub-file page,
but what is Arrn? And what is its value?
Alan Shore
NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx
Michael_Schutte@b
obevans.com
Sent by: To
rpg400-l-bounces@ RPG programming on the AS400 /
midrange.com iSeries <rpg400-l@xxxxxxxxxxxx>
cc
08/03/2006 10:45 Subject
AM Re: Even more embedded SQL....
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
Here you go.
C Eval Idx=(-1*Arrn)-11
* Set cursor back 10 records
C/EXEC SQL
C+ FETCH RELATIVE :Idx FROM C1 USING DESCRIPTOR :SQLDA
C/END-EXEC
This if from a working program.
Alan Shore
<AlanShore@xxxxxx
om> To
Sent by: RPG programming on the AS400 /
rpg400-l-bounces@ iSeries <rpg400-l@xxxxxxxxxxxx>
midrange.com cc
Subject
08/03/2006 10:39 Re: Even more embedded SQL....
AM
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
How do you handle page-up? I think (correct me if I am wrong) that you use
FIND RELATIVE?
How do you handle position to? That one I am having difficulty in working
out within SQL?
Alan Shore
NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx
Johnny Johnson
<jjohnson@hubgrou
p.com> To
Sent by: RPG programming on the AS400 /
rpg400-l-bounces@ iSeries <rpg400-l@xxxxxxxxxxxx>
midrange.com cc
RPG programming on the AS400 /
iSeries <rpg400-l@xxxxxxxxxxxx>,
08/03/2006 10:30 rpg400-l-bounces@xxxxxxxxxxxx
AM Subject
Re: Even more embedded SQL....
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
No, I use a one page at a time subfile. Most of the files I use this for
have a million records. I use the sql loop the same way I would a loop
with READ or READE.
First I build the sql statement based on what the user selects...
Second I do the following, where wrkSQL is the sql statement, because the
sql statement changes from user to user...
C/exec sql
C+ close csr
C/end-exec
C/exec sql
C+ prepare sqlstmt from :wrkSql
C/end-exec
C/exec sql
C+ open csr
C/end-exec
Then as my sql read loop(for lack of a better term), where sqlFile is the
data structure based on the externally defined file I am reading from.
C/exec sql
C+ fetch next from csr into :sqlFile
C/end-exec
Dow while sqlcod = *zero
*
*<subfile logic>
*
C/exec sql
C+ fetch next from csr into :sqlFile
C/end-exec
enddo
Johnny Johnson
Hub Group, Inc.
Alan Shore
<AlanShore@xxxxxx
om> To
Sent by: RPG programming on the AS400 /
rpg400-l-bounces@ iSeries <rpg400-l@xxxxxxxxxxxx>
midrange.com cc
Subject
08/03/2006 09:21 Re: Even more embedded SQL....
AM
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
Johnny - thanks for your reply, but I am betting that you do a load all
sub-file, and NOT a page at a time sub-file, which is what I need for
15,000 or more records.
I'm pretty sure that what I need to load page at a time is
FIND NEXT
FIND CURRENT
FIND RELATIVE
for things as Page up, Page Down etc.
but I'm not too sure how to do a position to within the sub-file using SQL
Alan Shore
NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx
Johnny Johnson
<jjohnson@hubgrou
p.com> To
Sent by: RPG programming on the AS400 /
rpg400-l-bounces@ iSeries <rpg400-l@xxxxxxxxxxxx>
midrange.com cc
Subject
08/03/2006 10:08 Re: Even more embedded SQL....
AM
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
I've always just built my sql statement based on what column(s) the user
selects to sort and then just filled the subfile sorted the way the sql
returns the data.
I'm not sure if this is what you are thinking, but it seems to work really
well.
Johnny Johnson
Hub Group, Inc.
Alan Shore
<AlanShore@xxxxxx
om> To
Sent by: RPG programming on the AS400 /
rpg400-l-bounces@ iSeries <rpg400-l@xxxxxxxxxxxx>
midrange.com cc
RPG programming on the AS400 /
iSeries <rpg400-l@xxxxxxxxxxxx>,
08/03/2006 08:53 rpg400-l-bounces@xxxxxxxxxxxx
AM Subject
Even more embedded SQL....
Please respond to
RPG programming
on the AS400 /
iSeries
<rpg400-l@midrang
e.com>
Hi All,
I have been given a project that requires the need to display, within a
subfile, the data from 2
separate files with the ability to sort that data from any number of
different columns. So I
thought to myself, this smacks of embedded SQL and Dynamic Sorting
Subfiles. The unfortunate
thing is that the data I have to display is over 15,000 records long (and
growing) so if anyone
can help me, I am looking for an example of embedded SQL and Dynamic
Sorting Subfiles - Page at
a time (with the ability to position to a particular piece of data)"
Some title for an article huh? If anyone has an example of what is
required, or could point me
in some direction, I would be very grateful.
Alan Shore
NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx
--
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.
--
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.
--
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.
--
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.
--
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.
--
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.
--
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 mailing list archive is Copyright 1997-2025 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.