I don't suppose this is the cause of your problems but it might be a "heads
up" for others:

I have recently - ie: it hasn't happened before - had problems with 2 or 3
reports that caused R:Base to burp noisily.
When I first checked the reports I could see nothing wrong but they are all
reports that I print to a file and have a wide right-hand margin. When I
scrolled over to the far right - just in case - I found that one, or more
fields crossed over the margin. Naturally, moving the margin further to the
right so all fields were inside solved the problem.

Now, I don't think I'm stupid enough to not move the margin when I placed
the fields so something changed them. It may well be that something quite
legitimate does this, or I did something stupid, or there's some
circumstance that might do it - an R:Base crash when the form is not saved -
whatever.

Either way, it seems that the margins are important even when printing to a
file which users may not expect.

Regards,
Alastair.

Using latest RBW 6.5++


----- Original Message ----- 
From: "Thompson Technology Consultants" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
Sent: Tuesday, August 19, 2003 1:32 AM
Subject: [RBASE-L] - RE: The impossible seems to happen


> I have a similar problem while printing a report that is inside a cursor
> (pointer).  I get a random
> "Invalid date" error.  Out of a data set of 30 "loops" it will appear
> anywhere from the
> 2nd record to the 22 record.  No change in data or anything.   Simply run
> the program
> multiple times and it gives the error at different records.   Records that
> run fine without
> error one time will produce the error on another run.  The program does no
> updating,
> simply prints two reports for each of the 30 customers.
>
> This sounds like a related issue, but alas I have found no solution.  In
my
> case, I only
> have one date field- InvoiceDate - and searching it is easy.  I found no
> invalid data.
> Reloads or packs did not help.  The report was originally driven off a
view
> and I
> even changed it to temporary tables, but with no improvement.  (No
> improvement on
> the error, but speed was significantly improved!)  However I still get
this
> random error.
>
> Troy's mentioning to go away from a While loop is interesting.  Is there a
> known
> issue with pointers or While loops?  This is the third time someone has
> suggested
> not using a pointer.  I ask because I use Declare Cursor statements quite
> often.
>
> Sorry I cannot assist with an answer, but had a few questions of my own.
>
> Thank you,
> -Bob Thompson
>
> -----Original Message-----
> From: Michael Moser [SMTP:[EMAIL PROTECTED]
> Sent: Monday, August 18, 2003 10:19 AM
> To: RBASE-L Mailing List
> Subject: [RBASE-L] - RE: The impossible seems to happen
>
> Hi Troy,
>
> I thought it might be a memory issue but it seems to be data.  It will
> happen on the first loop if I restrict the pointer to a record that causes
> the problem but I can not determine why the same variable condition with
> data from that record will evaluate as False at one point and True a few
> lines later ...  can memory leak show up on the second pass of a while
> loop?  I will try switching to a go to and let you know ... at this point
I
> will try anything ...
>
> :-}
>
> Thanks for the tip,
> Michael Moser
> EXAQ Micro Services
> Phone: 916-768-7656
> Fax: 916-966-8313
>
>  >>  This is probably a memory leak issue related to a while loop.
>
>  >>  Try changing your while loop into an IF statement and a GOTO.
>
>  >>  Troy
>
>  >>  -----Original Message-----
>  >>  From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of
Michael
>  >>  Moser
>  >>  Sent: Monday, August 18, 2003 9:46 AM
>  >>  To: RBASE-L Mailing List
>  >>  Subject: [RBASE-L] - The impossible seems to happen
>
>
>  >>  Hi all,
>
>  >>  Here is a mystery that I have been beating my head against a wall
> with.
>  >>  This code processes about 8,000 records just fine then, with about
> 2,000
>  >>  records to go, goes into a infinite loop where variables have to have
> the
>  >>  same value but do not.  if I reverse the sort order, the problem
> happens
>  >>  after about 300 records.
>
>  >>  P800, 512MB Ram, Windows XP Pro, R:Base 6.5++ 1.864xRT03.
>
>
>  >>  Suddenly the second while loop starts evaluating as False, even
though
> the
>  >>  values are being set immediately above it to insure a True
evaluation.
>  I
>  >>  have even inserted diagnostic code to check the length (SLEN) of the
>  >>  values
>  >>  which has shown that the variables do contain the same text
> information of
>  >>  the same length but they are being evaluated as different.  In one
>  >>  variation
>  >>  of the diagnostics I checked all three values in an IF statement, if
> one
>  >>  was
>  >>  false I checked each one individually to determine which one.  The
> check
>  >>  of
>  >>  the 3 indicated that 1 was false, the individual check found all to
be
>  >>  True
>  >>  ... go figure.
>
>  >>  Any Ideas?
>
>  >>  Thanks,
>  >>  Michael
>
>
>  >>  Michael Moser
>  >>  EXAQ Micro Services
>  >>  Phone: 916-768-7656
>  >>  Fax: 916-966-8313
>
>  >>  (Note: the quotes change allows me to insert a text value for "Id"
> using
>  >>  the
>  >>  'text' format.)
>
>  >>  SET QUOTES="
>  >>  SET V WhereClause = +
>  >>  ("Where id IS NOT NULL and Qty < 0 and SvcCode <> 10")
>  >>  SET QUOTES='
>  >>  DECLARE PTR1 CURSOR FOR SELECT +
>  >>  Id,tDate,SvcCode,SvcDesc,Qty,SvcPr,SvcTot,SCS,Paid,tDOE +
>  >>  FROM Transactions ORDER BY SCS=A, id, SvcCode &WhereClause
>  >>  OPEN PTR1
>  >>  SET V LastId      TEXT = 'NONE'
>  >>  FETCH PTR1 INTO +
>  >>  oscId X1, osctDate X1, oscSvcCode X1, oscSvcDesc X1, oscQty X1, +
>  >>  oscSvcPr X1, oscSvcTot X1, oscSCS X1, oscPaid X1, osctDOE X1
>  >>  IF SQLCODE <> 100 THEN
>  >>  SET V LoopStatus = 'RUN'
>  >>  ELSE
>  >>  SET V LoopStatus = 'STOP'
>  >>  ENDIF
>  >>  WHILE LoopStatus <> 'STOP' THEN
>  >>  IF oscId = .LastId AND oscSCS = .LastSCS AND LoopStatus = 'RUN' THEN
>  >>  -- this should NEVER happen but it does.
>  >>  write 'error 1'
>  >>  ENDIF
>  >>  -- ... more code here
>  >>  SET V LastSCS TEXT = .oscSCS
>  >>  SET V LastId  = .oscId
>  >>  WHILE oscId = .LastId AND oscSCS = .LastSCS AND LoopStatus = 'RUN'
> THEN
>  >>  -- ... more code here
>  >>  FETCH PTR1 INTO +
>  >>  oscId X1, osctDate X1, oscSvcCode X1, oscSvcDesc X1, oscQty X1, +
>  >>  oscSvcPr X1, oscSvcTot X1, oscSCS X1, oscPaid X1, osctDOE X1
>  >>  IF SQLCODE <> 100 THEN
>  >>  SET V LoopStatus = 'RUN'
>  >>  ELSE
>  >>  SET V LoopStatus = 'STOP'
>  >>  ENDIF
>  >>  IF oscId <> .LastId OR oscSCS <> .LastSCS OR LoopStatus <> 'RUN' THEN
>  >>  write 'message 1, ok to exit exit loop'
>  >>  ENDIF
>  >>  ENDWHILE
>  >>  ENDWHILE
>  >>  DROP CURSOR PTR1
>  >>  RETURN
>

Reply via email to