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




Thanks Jeff
Anyway to speed up processing of data will always keep the user happy



Alan Shore

NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx


                                                                       
             Jeff Young                                                
             <cooljeff913@yaho                                         
             o.com>                                                     To
             Sent by:                  RPG programming on the AS400 /  
             rpg400-l-bounces@         iSeries <rpg400-l@xxxxxxxxxxxx> 
             midrange.com                                               cc
                                                                       
                                                                   Subject
             08/03/2006 04:00          Re: Even more embedded SQL....  
             PM                                                        
                                                                       
                                                                       
             Please respond to                                         
              RPG programming                                          
              on the AS400 /                                           
                  iSeries                                              
             <rpg400-l@midrang                                         
                  e.com>                                               
                                                                       
                                                                       




Alan,
To use the MODS, you specify the fetch statement as FETCH xxx ROWS into
:MODS
Then you test field SQLER3 for the number of records actualy retreived, and
SQLER5 for the SQLCOD value.
Ex:
Ix     10I 0
Initial load - Fetch 20 ROWS into :MODS
.
Load Subfile
If SQLER5 > *Zero; // Have data
For Ix  = 1 to SQLER5; // Process data in MODS
%Occur(MODS) = Ix;
.
.
SFLRR# += 1;
Write SFL;
EndFor;

Fetch 20 ROWS into :MODS; // Test if any more data in file
End_Of_Data_For_Subfile = (SQLER5 = *Zero);
.
.
.
Display Subfile

If RollUP Requested ;
Load Subfile

This has the advantage of reducing the IO and making the load process much
faster.

Jeff Young

----- Original Message ----
From: Alan Shore <AlanShore@xxxxxxxx>
To: RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
Sent: Thursday, August 3, 2006 11:48:37 AM
Subject: Re: Even more embedded SQL....


Thanks for your input Jeff.


I know I will have to build the SQL statement each time a SORT of data is
requested, and then use PREPARE to convert it to an SQL statement.
What I didn't know about, is the use of MODS  for a multiple row fetch.
Thanks, that could be interesting.



Alan Shore

NBTY, Inc
(631) 244-2000 ext. 5019
AShore@xxxxxxxx



             Jeff Young
             <cooljeff913@yaho
             o.com>                                                     To
             Sent by:                  RPG programming on the AS400 /
             rpg400-l-bounces@         iSeries <rpg400-l@xxxxxxxxxxxx>
             midrange.com                                               cc

                                                                   Subject
             08/03/2006 11:35          Re: Even more embedded SQL....
             AM


             Please respond to
              RPG programming
              on the AS400 /
                  iSeries
             <rpg400-l@midrang
                  e.com>






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.



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

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.