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