|
I think your suggestion is good, as is the one about using a data area; however for this particular application there will not be a problem with record locking or clashes since only the supervisor is going to have access to the routine. It will though come into play with the ordering system.....thanks again for the helpful hints. Douglas On Thu, 10 Mar 2005 10:27:52 -0500, Mike Silvers wrote > We use a table for the last number increment. The program reads the > table, gets the next number, increments the table entry by one (to > prepare for the next program) and continues processing. We have > found it to be very effective -- utilizes record locking to prevent > a clash of the next numbers... > > -----Original Message----- > From: rpg400-l-bounces@xxxxxxxxxxxx > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Karen L > Hodge/MIS/Genesys > Sent: Thursday, March 10, 2005 10:10 AM > To: rpg400-l@xxxxxxxxxxxx > Cc: rpg400-l@xxxxxxxxxxxx; rpg400-l-bounces@xxxxxxxxxxxx > Subject: Re: Suggestions > > Begin with any random number. > Assign that to your first record. > Add 1 to that number and assign that to your second record. > Keep going..... > > You can then keep the last used number in a data area for reference. > Or you could just read the last record in the file using a logical keyed > by > this new id field. > You accomplish this by doing a SETLL using *HIVAL and then doing a > READP. > > you do not have to: > 'read through the file and increment a counter, but that seems > to have a huge overhead, not to mention that as time goes on, it'll take > longer and longer to calculate. > > Thank you, > > Karen Hodge > Senior System Analyst > Genesys Health System > 1000 Healthpark Blvd, Grand Blanc, Mi 48439 > Office 810.606.5180, Fax 810.606.7204 > khodge@xxxxxxxxxxx > > rpg400-l-request@ > > midrange.com > > Sent by: > To > rpg400-l-bounces@ rpg400-l@xxxxxxxxxxxx > > midrange.com > cc > > Subject > 03/10/2005 09:01 RPG400-L Digest, Vol 4, Issue > 280 > > AM > > Please respond to > > rpg400-l@midrange > > .com > > Send RPG400-L mailing list submissions to > rpg400-l@xxxxxxxxxxxx > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.midrange.com/mailman/listinfo/rpg400-l > or, via email, send a message with subject or body 'help' to > rpg400-l-request@xxxxxxxxxxxx > > You can reach the person managing the list at > rpg400-l-owner@xxxxxxxxxxxx > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of RPG400-L digest..." > > Today's Topics: > > 1. Re: Making sense of 4-byte binary fields (James H. H. Lampert) > 2. Re: Suggestions (Raul Jager) > 3. AW: Random number in VARPG (HauserSSS) > 4. Re: AW: Random number in VARPG (Peter.Colpaert@xxxxxxxxxx) > 5. Re: Suggestions (RPower@xxxxxxxxxx) > 6. Re: Require help in RPG V (RPower@xxxxxxxxxx) > 7. Re: Suggestions (rob@xxxxxxxxx) > 8. Re: AW: Random number in VARPG (rob@xxxxxxxxx) > > ---------------------------------------------------------------------- > > message: 1 > date: Wed, 09 Mar 2005 20:48:42 -0800 > from: "James H. H. Lampert" <jamesl@xxxxxxxxxxx> > subject: Re: Making sense of 4-byte binary fields > > In response to: > > > I think you have a good point about the misleading documentation. > Most > > > other languages specify the integer types by names--e.g. short, int, > > > long...and leave the number of bits to the implementation. > Fortunately, > > > it's mostly standardized. > > Scott Klement wrote: > > Actually, that has caused a lot of problems. Particularly on Unix > systems > > where you typically want to write code on one system, but expect it to > > compile and run on many completely different ones (including > completely > > differnt hardware architectures) > > Scott's right about the woes of leaving the number of bytes various > names mean up to the implementation, but that's hardly confined to > Unix, Linux, Aix, &c. It's a problem with ALL implementations of C. > That's why Sun made it an inflexible standard in Java. > > Java has it right, at least in terms of consistency, although you > have to RTFM to know that "int" is always 4 bytes, "short" and > "char" are always 2, and "long" is always 8. Typical coffee-crazed C- > jockey thinking. Oh, if Java had only been designed by a lover of > PL/I. . . > > But FORTRAN had it right a long time ago, with INTEGER*2 and INTEGER*4. > Just as PL/I had it right a long time ago with BIN FIXED (15,0) for a > 2-byte (15 bits + sign, get it?) integer, and BIN FIXED (31,0) for a > 4-byte integer. And of course, MI got it right with explicitly giving > the number of bytes, almost the same way as Fortran. > > Anybody have any idea what the RPG designers were smoking when they > decided to make it the number of decimal digits, and to actually > generate the extra code to clamp it to that specified number of decimal > digits? > > -- > James H. H. Lampert > Professional Dilettante > http://www.hb.quik.com/jamesl > http://members.hostedscripts.com/antispam.html > http://www.thehungersite.com > > Help America's Passenger Trains. http://www.saveamtrak.org > > Read My Lips: No More Atrocities! > > ------------------------------ > > message: 2 > date: Thu, 10 Mar 2005 07:35:07 -0300 > from: Raul Jager <raul@xxxxxxxxxx> > subject: Re: Suggestions > > This program returns the number of records in the file. Just add 1 and > use as the key, unless you decide to begin teh keys with zero. > ________________________________________________________________________ > ___________________ > > 0001.00 PGM PARM(&NAME &LIBR &SIZE) > 0002.00 DCL VAR(&NAME) TYPE(*CHAR) LEN(10) > 0003.00 DCL VAR(&LIBR) TYPE(*CHAR) LEN(10) > 0004.00 DCL VAR(&SIZE) TYPE(*DEC) LEN(10) > VALUE(0) 0005.00 DCL VAR(&NBRCURRCD) TYPE(*DEC) > LEN(10) VALUE(0) 0006.00 DCL VAR(&NBRDLTRCD) > TYPE(*DEC) LEN(10) VALUE(0) 0007.00 RTVMBRD > FILE(&LIBR/&NAME) NBRCURRCD(&NBRCURRCD) + 0008.00 > NBRDLTRCD(&NBRDLTRCD) 0009.00 MONMSG > MSGID(CPF9812) EXEC(DO) /* 'Archivo no esta' */ 0010.00 > CHGVAR VAR(&SIZE) VALUE(-1) 0011.00 RETURN > 0012.00 ENDDO > 0013.00 CHGVAR VAR(&SIZE) VALUE(&NBRCURRCD + > &NBRDLTRCD) > 0014.00 ENDPGM > ________________________________________________________________________ > ______ > > Raul > > Buck Calabro wrote: > > >>I have a physical file that will hold > >>gas type information, but one of the > >>fields needs to be an integer id field. > >> > >> > > > >Search the archives for SQL IDENTITY and you'll probably come up with > >a bunch of useful examples. http://archive.midrange.com There are > >several native RPG ways to go about this. > > > >1) Use a data area to store the last number used > >*lock in lastno > > add 1 lastno > > out lastno > > > >2) Get the highest key by looking at the last record > >*hival setll > > readp > > add 1 key > >... > > > >3) Store the last number used in another database file > > > >Hope this gets you started. > > --buck > > > > > > > > > > > > ------------------------------ > > message: 3 > date: Thu, 10 Mar 2005 14:22:12 +0100 > from: "HauserSSS" <Hauser@xxxxxxxxxxxxxxx> > subject: AW: Random number in VARPG > > Hi Peter, > > is it possible to use embedded SQL in VARPG? > If so you could determine a random number with embedded SQL. > > Birgitta > > -----Ursprungliche Nachricht----- > Von: rpg400-l-bounces@xxxxxxxxxxxx > [mailto:rpg400-l-bounces@xxxxxxxxxxxx]Im Auftrag von > Peter.Colpaert@xxxxxxxxxx > Gesendet: Donnerstag, 10. Marz 2005 13:27 > An: rpg400-l@xxxxxxxxxxxx > Betreff: Random number in VARPG > > Hi group, > > I'm working on a personal project, my first experiment with VisualAge > RPG. > > My intention is to make a flash-card program that my son can use to > train > his multiplication & division tables. > > As I don't have an iSeries at home, it has to be completely PC-based. > > The problem I'm encountering is that I need to randomize the array with > questions, and I have no clue as to how to start this. > > I tried including the microsecond part of the timestamp into the > array and sorting by that, but the program is so fast that there are > only 3 distinct values over 220 elements... > > On the iSeries, I know I can call an API or the rand() function from > QC2LE, but is there an equivalent available from VARPG? > > Or can anybody give me a clue as to how to write a pseudo-random number > generating procedure? > > Thanks in advance, > > Peter Colpaert > Application Developer > Massive - Kontich, Belgium > ----- > Yoda of Borg are we. Futile is resistance, assimilated will you be. > ----- > -- > 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. > > ------------------------------ > > message: 4 > date: Thu, 10 Mar 2005 14:34:34 +0100 > from: Peter.Colpaert@xxxxxxxxxx > subject: Re: AW: Random number in VARPG > > Hi Brigitta, > > I guess it is possible, but that brings me to a different problem, > namely > that I'd need an SQL database of some sort on his PC. > > But I'll keep your suggestion in mind. > > Thanks, > > Peter Colpaert > Application Developer > Massive - Kontich, Belgium > ----- > Yoda of Borg are we. Futile is resistance, assimilated will you be. > ----- > > "HauserSSS" <Hauser@xxxxxxxxxxxxxxx> > Sent by: rpg400-l-bounces@xxxxxxxxxxxx > 10/03/2005 14:22 > Please respond to RPG programming on the AS400 / iSeries > > To: "RPG programming on the AS400 / iSeries" > <rpg400-l@xxxxxxxxxxxx> > cc: > Subject: AW: Random number in VARPG > > Hi Peter, > > is it possible to use embedded SQL in VARPG? > If so you could determine a random number with embedded SQL. > > Birgitta > > ------------------------------ > > message: 5 > date: Thu, 10 Mar 2005 10:02:39 -0330 > from: RPower@xxxxxxxxxx > subject: Re: Suggestions > > What we do here, is make one unique id(7963535) and use that record the > placeholder of your current unique id number. Usually we have at least > one date field, so use the date field to hold the next unique id > number, and make the record that holds the unique id number have a > unique id of 7963535 or something like that. > > Ron Power > Programmer > Information Services > City Of St. John's, NL > P.O. Box 908 > St. John's, NL > A1C 5M2 > Tel: 709-576-8132 > Email: rpower@xxxxxxxxxx > Website: http://www.stjohns.ca/ > ________________________________________________________________________ > ___ > Success is going from failure to failure without a loss of > enthusiasm. - Sir Winston Churchill > > "Douglas W. Palme" <dpalme@xxxxxxxxxxxxxxxxxxxxx> > Sent by: rpg400-l-bounces@xxxxxxxxxxxx > 09/03/2005 04:27 PM > Please respond to > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > > To > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > cc > > Subject > Suggestions > > I have a physical file that will hold gas type information, but one > of the > > fields needs to be an integer id field. My experience with other db > formats > is that I could set that field to auto generate so that as each > record is written it will increment the count by 1. we will be > using this for cross > > referencing to some other files and must be unique. > > I know I can read through the file and increment a counter, but that > seems > > to have a huge overhead, not to mention that as time goes on, it'll take > longer and longer to calculate. > > Does anyone have a viable suggestion on how to accomplish this? > > Douglas > > -- > 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. > > ------------------------------ > > message: 6 > date: Thu, 10 Mar 2005 10:04:12 -0330 > from: RPower@xxxxxxxxxx > subject: Re: Require help in RPG V > > Wouldn't that be a phantom menace LOL. > > Ron Power > Programmer > Information Services > City Of St. John's, NL > P.O. Box 908 > St. John's, NL > A1C 5M2 > Tel: 709-576-8132 > Email: rpower@xxxxxxxxxx > Website: http://www.stjohns.ca/ > ________________________________________________________________________ > ___ > Success is going from failure to failure without a loss of > enthusiasm. - Sir Winston Churchill > > "Rusling, John B. (Alliance)" <jbrusling@xxxxxxxxxxxxxxx> > Sent by: rpg400-l-bounces@xxxxxxxxxxxx > 09/03/2005 04:27 PM > Please respond to > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > > To > <rpg400-l@xxxxxxxxxxxx> > cc > > Subject > Re: Require help in RPG V > > Or rename it and start over at "I" ! > > John B. > > >message: 1 > >date: Wed, 9 Mar 2005 10:02:11 -0800 > >from: Tony Carolla <carolla@xxxxxxxxx> > >subject: Re: Require help in RPG V > > ><snip> > >On Wed, 9 Mar 2005 17:24:59 -0000, Colin Williams > <colin.williams@xxxxxxxxxxxx> wrote: > >>> Im waiting for RPG VI, the revenge! > >> > ></snip> > > >EGADS MAN! If they don't get it in five tries, ABANDON SHIP! > > -- > 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. > > ------------------------------ > > message: 7 > date: Thu, 10 Mar 2005 08:45:34 -0500 > from: rob@xxxxxxxxx > subject: Re: Suggestions > > There are LOTS of problems with this technique. Suppose your key's are > 1,3,4,7,8,9 (with some having been deleted). Now you RGZPFM and get > rid of the deleted records. Using your technique, the current high key > would > be 6. Nice try with counting the number of deleted records though. > > Rob Berendt > -- > Group Dekko Services, LLC > Dept 01.073 > PO Box 2000 > Dock 108 > 6928N 400E > Kendallville, IN 46755 > http://www.dekko.com > > Raul Jager <raul@xxxxxxxxxx> > Sent by: rpg400-l-bounces@xxxxxxxxxxxx > 03/10/2005 07:35 AM > Please respond to > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > > To > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > cc > > Subject > Re: Suggestions > > This program returns the number of records in the file. Just add 1 and > use as the key, unless you decide to begin teh keys with zero. > ________________________________________________________________________ > ___________________ > > 0001.00 PGM PARM(&NAME &LIBR &SIZE) > 0002.00 DCL VAR(&NAME) TYPE(*CHAR) LEN(10) > 0003.00 DCL VAR(&LIBR) TYPE(*CHAR) LEN(10) > 0004.00 DCL VAR(&SIZE) TYPE(*DEC) LEN(10) > VALUE(0) 0005.00 DCL VAR(&NBRCURRCD) TYPE(*DEC) > LEN(10) VALUE(0) 0006.00 DCL VAR(&NBRDLTRCD) > TYPE(*DEC) LEN(10) VALUE(0) 0007.00 RTVMBRD > FILE(&LIBR/&NAME) NBRCURRCD(&NBRCURRCD) + 0008.00 > NBRDLTRCD(&NBRDLTRCD) 0009.00 MONMSG > MSGID(CPF9812) EXEC(DO) /* 'Archivo no esta' */ 0010.00 > CHGVAR VAR(&SIZE) VALUE(-1) 0011.00 RETURN > 0012.00 ENDDO > 0013.00 CHGVAR VAR(&SIZE) VALUE(&NBRCURRCD + > &NBRDLTRCD) > 0014.00 ENDPGM > ________________________________________________________________________ > ______ > > Raul > > Buck Calabro wrote: > > >>I have a physical file that will hold > >>gas type information, but one of the > >>fields needs to be an integer id field. > >> > >> > > > >Search the archives for SQL IDENTITY and you'll probably come up with > >a bunch of useful examples. http://archive.midrange.com There are > >several native RPG ways to go about this. > > > >1) Use a data area to store the last number used > >*lock in lastno > > add 1 lastno > > out lastno > > > >2) Get the highest key by looking at the last record > >*hival setll > > readp > > add 1 key > >... > > > >3) Store the last number used in another database file > > > >Hope this gets you started. > > --buck > > > > > > > > > > > > -- > 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. > > ------------------------------ > > message: 8 > date: Thu, 10 Mar 2005 09:01:13 -0500 > from: rob@xxxxxxxxx > subject: Re: AW: Random number in VARPG > > Would you really need an SQL database? Many people use the 'dummy' file > method when they don't need to. For example > > select current time into :myvar > from sysibm/sysdummy1 > > When they could do > > values current time into :myvar > > http://publib.boulder.ibm.com/infocenter/iseries/v5r3/ic2924/info/db2/rb > afzmstvalinto.htm#valinto > > Granted, the example for RAND does use the dummy file method. > > However (and I would use your own multiplication factor!) this works: > D myRandNum s 10i 0 > > C/exec sql > C+ values (rand() * 1000) into :myRandNum > C/end-exec > /free > *inlr=*on; > return; > /end-free > > Rob Berendt > -- > Group Dekko Services, LLC > Dept 01.073 > PO Box 2000 > Dock 108 > 6928N 400E > Kendallville, IN 46755 > http://www.dekko.com > > Peter.Colpaert@xxxxxxxxxx > Sent by: rpg400-l-bounces@xxxxxxxxxxxx > 03/10/2005 08:34 AM > Please respond to > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > > To > RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> > cc > > Subject > Re: AW: Random number in VARPG > > Hi Brigitta, > > I guess it is possible, but that brings me to a different problem, > namely > that I'd need an SQL database of some sort on his PC. > > But I'll keep your suggestion in mind. > > Thanks, > > Peter Colpaert > Application Developer > Massive - Kontich, Belgium > ----- > Yoda of Borg are we. Futile is resistance, assimilated will you be. > ----- > > "HauserSSS" <Hauser@xxxxxxxxxxxxxxx> > Sent by: rpg400-l-bounces@xxxxxxxxxxxx > 10/03/2005 14:22 > Please respond to RPG programming on the AS400 / iSeries > > To: "RPG programming on the AS400 / iSeries" > <rpg400-l@xxxxxxxxxxxx> > cc: > Subject: AW: Random number in VARPG > > Hi Peter, > > is it possible to use embedded SQL in VARPG? > If so you could determine a random number with embedded SQL. > > Birgitta > > -- > 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) digest > 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. > > End of RPG400-L Digest, Vol 4, Issue 280 > **************************************** > > -- > 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. -- Open WebMail Project (http://openwebmail.org)
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.