|
murali, i would suggest u to use expanded sub-file set the subfile page size one greater than the subfile size.... handle the pagedown key to add more records to that.. here i suggest u to load some minimum no. of records at a time instead of loading all the 9000 records and then 4000... just load 100 or 1000.. if it exceeds that limit, system will give the control to your program, now u can load other records in this way u can achieve the solution Arul Be ignorant than urban insane Smile :-) from your Heart > -----Original Message----- > From: MURALI DHAR [SMTP:nmuralidhar@rediffmail.com] > Sent: Thursday, October 10, 2002 3:10 PM > To: rpg400-l@midrange.com > Subject: Load all subfile > > I have a requirment where iam using Loadall subfile...The no of > records Iam having right now is around 9000(less than9999)...Now I > have to add another 4thousands of records to this...I dont like to > reprogram it by using single page subfile...How can i do this with > Loadall subfile?Am I going to loose any records if i add 4 > thousand records to the already existing 9000 records....I cant > reprogram it....I ve to do with Load all only....Can u please help > giving answer to this.... > Best Regards > Murali. > > On Thu, 10 Oct 2002 Scott Klement wrote : > > > >On Wed, 9 Oct 2002, Steve Richter wrote: > > > > > > Its just a hunch of mine. C relies on null term strings so I > >am speculating > > > that ILE handles them efficiently. > > > > > > >Okay, I wrote & ran some benchmarks on these things. To my > >surprise, both > >fixed-length and null-terminated strings performed SIGNIFICANTLY > >better > >than varying. About twice as fast! I hope Hans or Barbara can > >explain > >why... > > > >This was done on my company's iSeries, 9406-270(2248) at V4R5. > >I was the only person online / only job running. > >I did not enable any special optimization for either compiler. > >All the strings I passed were 32000 bytes long. > > > >Here's the results: > > > >Description Iters per Second > >-------------------------------- ----------------- > >ILE RPG fixed-len by value 4167 > >ILE RPG fixed-len by reference 416667 > >ILE RPG null-terminated by value 4167 > >ILE RPG null-terminated by reference 416667 > >ILE RPG varying by value 2083 > >ILE RPG varying by reference 217391 > >ILE C null-terminated by value 8333 > >ILE C null-terminated by reference 1666666 > > > > > >Here are the programs that I used to perform the test. Note > >that I > >assigned a 'x' to the first byte in each string in each function > >just > >to make sure the compiler didn't "remove" the routine during some > >sort > >of optimization. > > > > H DFTACTGRP(*NO) ACTGRP(*NEW) > > > > D by_value PR > > D data 32000A value > > D by_reference PR > > D data 32000A > > D v_by_value PR > > D data 32000A value varying > > D v_by_reference PR > > D data 32000A varying > > D n_by_value PR > > D data 32000A value > > D n_by_reference PR > > D data 32000A > > > > D data S 32000A > > D data2 S 32000A varying > > D start S Z > > D end S Z > > D diff S 10I 0 > > D msg S 50A > > D x S 10I 0 > > > > c eval data = 'This is not a > >null-terminated '+ > > c 'string.' > > c eval data2= 'This is not a > >null-terminated '+ > > c 'string.' > > > > c time start > > > > c for x = 1 to 50000 > > c callp by_value(data) > > c endfor > > > > c time end > > > > c end subdur start diff:*seconds > > c eval msg = 'by-value ' + > >%editc(diff:'Z') > > c msg dsply > > > > c time start > > > > c for x = 1 to 5000000 > > c callp by_reference(data) > > c endfor > > > > c time end > > > > c end subdur start diff:*seconds > > c eval msg = 'by-ref ' + > >%editc(diff:'Z') > > c msg dsply > > > > c time start > > > > c for x = 1 to 50000 > > c callp v_by_value(data2) > > c endfor > > > > c time end > > > > c end subdur start diff:*seconds > > c eval msg = 'v-by-value ' + > >%editc(diff:'Z') > > c msg dsply > > > > c time start > > > > c for x = 1 to 5000000 > > c callp v_by_reference(data2) > > c endfor > > > > > > c time end > > > > c end subdur start diff:*seconds > > c eval msg = 'v-by-ref ' + > >%editc(diff:'Z') > > c dsply msg > > > > c eval data = 'This is now a > >null-terminated '+ > > c 'string.' + X'00' > > > > c time start > > > > c for x = 1 to 50000 > > c callp n_by_value(data) > > c endfor > > > > c time end > > > > c end subdur start diff:*seconds > > c eval msg = 'n-by-value ' + > >%editc(diff:'Z') > > c msg dsply > > > > c time start > > > > c for x = 1 to 5000000 > > c callp n_by_reference(data) > > c endfor > > > > c time end > > > > c end subdur start diff:*seconds > > c eval msg = 'n-by-ref ' + > >%editc(diff:'Z') > > c dsply msg > > > > c eval *inlr = *on > > > > P by_value B > > D by_value PI > > D data 32000A value > > c eval %subst(data:1:1) = 'x' > > P E > > > > > > P by_reference B > > D by_reference PI > > D data 32000A > > c eval %subst(data:1:1) = 'x' > > P E > > > > > > P v_by_value B > > D v_by_value PI > > D data 32000A value varying > > c eval %subst(data:1:1) = 'x' > > P E > > > > > > P v_by_reference B > > D v_by_reference PI > > D data 32000A varying > > c eval %subst(data:1:1) = 'x' > > P E > > > > > > P n_by_value B > > D n_by_value PI > > D data 32000A value > > c eval %subst(data:1:1) = 'x' > > P E > > > > > > P n_by_reference B > > D n_by_reference PI > > D data 32000A > > c eval %subst(data:1:1) = 'x' > > P E > > > > > > > >#include <stdio.h> > >#include <string.h> > >#include <time.h> > > > >struct my_data { > > char string[32000]; > >}; > > > >void by_value(struct my_data d); > >void by_reference(char *str); > > > >int main(void) { > > struct my_data dta; > > time_t start, end; > > int x; > > > > strcpy(dta.string, "This is now a null-terminated > >string."); > > > > time(&start); > > > > for (x=0; x<50000; x++) > > by_value(dta); > > > > time(&end); > > > > printf("By-value total time %f seconds\n", > >difftime(end,start)); > > > > time(&start); > > > > for (x=0; x<5000000; x++) > > by_reference(dta.string); > > > > time(&end); > > > > printf("By-reference total time %f seconds\n", > > difftime(end,start)); > > > > > > return 0; > >} > > > >void by_value(struct my_data d) { > > d.string[0] = 'x'; > >} > > > >void by_reference(char *str) { > > str[0] = 'x'; > >} > > > >_______________________________________________ > >This is the RPG programming on the AS400 / iSeries (RPG400-L) > >mailing list > >To post a message email: RPG400-L@midrange.com > >To subscribe, unsubscribe, or change list options, > >visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l > >or email: RPG400-L-request@midrange.com > >Before posting, please take a moment to review the archives > >at http://archive.midrange.com/rpg400-l. > > > > __________________________________________________________ > Give your Company an email address like > ravi @ ravi-exports.com. Sign up for Rediffmail Pro today! > Know more. http://www.rediffmailpro.com/signup/ > > _______________________________________________ > This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list > To post a message email: RPG400-L@midrange.com > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l > or email: RPG400-L-request@midrange.com > Before posting, please take a moment to review the archives > at http://archive.midrange.com/rpg400-l. ************************************************************************** This email (including any attachments) is intended for the sole use of the intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or distribution or forwarding of any or all of the contents in this message is STRICTLY PROHIBITED. If you are not the intended recipient, please contact the sender by email and delete all copies; your cooperation in this regard is appreciated. **************************************************************************
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.