I agree. Unless there is a logical need to go backwards, I only go backwards
when deleting mv'd data from attributes. Far better than maintaining a mv
pointer and branching when going forward.

Mark Johnson
----- Original Message -----
From: "Anthony Youngman" <[EMAIL PROTECTED]>
To: <u2-users@listserver.u2ug.org>
Sent: Monday, November 17, 2008 4:04 AM
Subject: RE: [U2] SELECT-READNEXT That's odd


> The other problem with counting backwards is if you've got a lot of
fields. BASIC has optimisations for scanning forward through a list. I don't
think it scans backwards very well. Go backwards and the result is not
likely to be pretty.
>
> The only time I normally go backwards is when I have a habit of deleting
the value I'm working on, and need to know I've processed every value.
>
> Cheers,
> Wol
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of MAJ Programming
> Sent: 15 November 2008 03:52
> To: u2-users@listserver.u2ug.org
> Subject: Re: [U2] SELECT-READNEXT That's odd
>
> I would have to challenge the concept of putting the DCOUNT as the first
> value and counting backwards.
>
> 99% of the time FOR..NEXT loops start at 1 and go to some end. We assume
> that there's a test for surpassing the second variable at each iteration
of
> FOR. But is the first variable touched only once and not again.
>
> If it's touched for each iteration, then DCOUNT anywhere is excessive. If
it
> is only the first pass and only when working backwards, then it's too
> awkward and the more readable code would be to assign it and not have it
> derived per iteration, stepping in either direction.
>
> While noble and accurate, saving one variable when so many programmers
have
> zillions of variables anyway would amount  to much savings.
>
> My 2 cents.
> Mark Johnson
> ----- Original Message -----
> From: "Edward Brown" <[EMAIL PROTECTED]>
> To: <u2-users@listserver.u2ug.org>
> Sent: Friday, November 14, 2008 12:05 PM
> Subject: RE: [U2] SELECT-READNEXT That's odd
>
>
> > Hey, save the variable by looping backwards - if the code in the loop
> > allows it, of course...
> >
> >
> > FOR A = DCOUNT(WORK.THINGY,VM) TO 1 STEP -1
> >   code
> > NEXT A
> >
> > -----Original Message-----
> > Also for any newbies watching. Do not put DCOUNT as the second value in
> > a
> > FOR...NEXT Loop. Assign it once prior to the FOR statement and the loop
> > will
> > be faster.
> >
> > MAX=DCOUNT(WORK.ITEM.REC<17>,VM)
> > FOR I=1 TO MAX
> >
> > My 2 cents
> > Mark Johnson
> > ----- Original Message -----
> > From: "Jef Lee" <[EMAIL PROTECTED]>
> > To: <u2-users@listserver.u2ug.org>
> > Sent: Friday, November 14, 2008 2:39 AM
> > Subject: [U2] SELECT-READNEXT That's odd
> >
> >
> > > One of our programmers wrote this snippet:
> > >
> > >       FOR YY=1 TO DCOUNT(WORK.ITEM.REC<17>,VM)
> > >          LISTNUMBER=''
> > >          SQLCOMMAND=''
> > >          UNISTATEMENT='SELECT BPM.WORKITEMS WITH
> > A1="':WORK.ITEM.REC<1>:'"
> > AND
> > > WITH A2="':WORK.ITEM.REC<2>:'" AND WITH A17="':WORK.ITEM.REC<17,YY>:'"
> > AND
> > > WITH A24#"C" AND WITH A24#"R" AND WITH A24#"F"'
> > >          *MY.REC<1>=UNISTATEMENT
> > >          CALL SR.EXECUTESQL(LISTNUMBER,UNISTATEMENT,SQLCOMMAND)
> > >          READNEXT DEPENDANT.ID ELSE
> > >             * NO ACTIVE ITEMS LEFT I NEED TO UPDATE THE STATUS OF THE
> > > DEPENDANT TASK
> > >             CALL
> > > SR.READSQL('BPM.WORKITEMS',DEP.TASK.REC,WORK.ITEM.REC<17,YY>,'')
> > >             DEP.TASK.REC<24>='A'
> > >             DEP.TASK.REC<8>=DATE()
> > >             DEP.TASK.REC<9>=TIME()
> > >             CALL
> > > SR.WRITESQL('BPM.WORKITEMS',DEP.TASK.REC,WORK.ITEM.REC<17,YY>)
> > >          END
> > >       NEXT YY
> > >
> > > The FOR loop has 2 values to iterate, so it does 2 loops. The function
> > > SR.EXECUTESQL()does the SELECT call.
> > > Loop 1 returns 2 keys found.
> > > Loop 2 returns 0 keys found.
> > > What's odd is that the select list is empty on loop iteration 2 and
> > the
> > > READNEXT is populated the ID with the second key from the first
> > iteration.
> > >
> > > I looked in the help PDFs and all I found was a reference to a
> > corrected
> > error
> > > relating to memory not being released if the READNEXT did not exhaust
> > the
> > > SELECT list.
> > >
> > > Any thoughts?
> > >
> > > We have since changed our strategy to check the count returned
> > instead.
> > But it
> > > would be nice to know that others have encountered this as well.
> > >
> > > Jeffrey Lee
> > > Senior Analyst/Programmer
> > >
> > > IT Vision Australia Pty Ltd (ABN: 34 309 336 904)
> > > PO Box 881, Canning Bridge WA 6153
> > > Level 3, Kirin Centre, 15 Ogilvie Road, Applecross, WA, 6153
> > > P:  (08) 9315 7000    F: (08) 9315 7088
> > > W: http://www.itvision.com.au
> > > ___________________________________________________________
> > >
> > > NOTICE : This e-mail and any attachments are intended for the
> > addressee(s)
> > > only and may
> > > contain confidential or privileged material. Any unauthorised review,
> > use,
> > > alteration,
> > > disclosure or distribution of this e-mail (including any attachments)
> > by
> > an
> > > unintended recipient
> > > is prohibited. If you are not the intended recipient please contact
> > the
> > sender
> > > as soon as
> > > possible by return e-mail and then delete both messages.
> > > ___________________________________________________________
> > > -------
> > > u2-users mailing list
> > > u2-users@listserver.u2ug.org
> > > To unsubscribe please visit http://listserver.u2ug.org/
> > -------
> > u2-users mailing list
> > u2-users@listserver.u2ug.org
> > To unsubscribe please visit http://listserver.u2ug.org/
> >
>
> --------------------------------------------------------------------------
> -----------------
> > Please remember to recycle wherever possible.
> > Reduce, reuse, recycle, think do you need to print this e-mail?
>
> --------------------------------------------------------------------------
> -----------------
> > This e-mail and any attachment(s), is confidential and may be legally
> privileged. It is intended solely for the addressee. If you are not the
> addressee, dissemination, copying or use of this e-mail or any of its
> content is prohibited and may be unlawful. If you are not the intended
> recipient please inform the sender immediately and destroy the e-mail, any
> attachment(s) and any copies. All liability for viruses is excluded to the
> fullest extent permitted by law. It is your responsibility to scan or
> otherwise check this email and any attachment(s). Unless otherwise stated
> (i) views expressed in this message are those of the individual sender
(ii)
> no contract may be construed by this e-mail. Emails may be monitored and
you
> are taken to consent to this monitoring.
> >
> > Civica Services Limited, Company No. 02374268; Civica UK Limited,
Company
> No. 01628868
> > Both companies are registered in England and Wales and each has its
> registered office at 2 Burston Road, Putney, London, SW15 6AR.
>
> --------------------------------------------------------------------------
> -----------------
> > -------
> > u2-users mailing list
> > u2-users@listserver.u2ug.org
> > To unsubscribe please visit http://listserver.u2ug.org/
> -------
> u2-users mailing list
> u2-users@listserver.u2ug.org
> To unsubscribe please visit http://listserver.u2ug.org/
> -------
> u2-users mailing list
> u2-users@listserver.u2ug.org
> To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to