Javier, Thanks for the reminder. I used to do that routinely years ago when the the files setting seemed to be more of a problem but I have gotten out of the habit as it did not seem to be an issue any more. Better safe than spending time trying to figure out what went wrong ....
Thanks, Michael Michael Moser EXAQ Micro Services Phone: 916-768-7656 Fax: 916-966-8313 >> Michael: >> If going to an additional loop is causing problems, you may want to check >> the "FILES = XX" setting; I routinely set up mine to 50 and I have not had >> many problems of this type. On new installation, sometimes when I forgot >> to >> change this value, I started to have problem on multi-nested programs, >> changing the setting for files normally took care of this. >> Javier, >> Javier Valencia, PE >> President >> Valencia Technology Group, L.L.C. >> 14315 S. Twilight Ln, Suite #14 >> Olathe, Kansas 66962-4578 >> Office (913)829-0888 >> Fax (913)649-2904 >> Cell (913)915-3137 >> -----Original Message----- >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Michael >> Moser >> Sent: Tuesday, August 19, 2003 5:00 PM >> To: RBASE-L Mailing List >> Subject: [RBASE-L] - RE: The impossible seems to happen RESOLVED >> Thanks to everyone for all the tips and pointers. >> Turns out that Troy was right from the start. Once the variables started >> being mis-evaluated it happend all the time until R:Base was restarted. >> This gave the illusion that I could check a specific record to see the >> problem. >> This file was being run from a while loop in another program. This was >> the >> 5th copy of the programming structure, modified for slightly different >> purposes. None of the previous programs had had a problem but this one >> had >> an additional while loop inside it. Cutting out the third level while >> loop >> made the problem go away. Replacing the outside loop with a "if-then goto >> label" structure resolved the problem. >> In 14 years using R:Base I had never seen a situation where Var1= 'A', >> Var2 >> = 'A' and then have R:Base say on the next line that Var1 <> Var2. It >> made >> my head spin .... >> THANKS Troy, I would have never thought to look there. >> Warmest regards, >> Michael >> Michael Moser >> EXAQ Micro Services >> Phone: 916-768-7656 >> Fax: 916-966-8313 >> >> oops I forgot the "." on the front of vcomp_text. Should read >> .vcomp_text >> >> in both places >> >> -----Original Message----- >> >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Troy >> >> Sosamon >> >> Sent: Monday, August 18, 2003 10:50 AM >> >> To: RBASE-L Mailing List >> >> Subject: [RBASE-L] - RE: The impossible seems to happen >> >> Michael, >> >> If it is that consistent to happen on the same row every time, it is >> >> probably not related to the while loop, but related to the data. >> >> I would look at the functions and the data types that you are using. >> >> I had a cursor that receintly stopped working when the select portion >> of >> >> the >> >> declare had a data type mismatch, but the select by itself worked >> fine. >> >> It >> >> was something like this: >> >> select * from table1 where company = vcomp_text >> >> where company was an integer and the var vcomp_text was text. This >> select >> >> works fine, but this fails w/o out any explination: >> >> declare c1 cur for select * from table1 where company = vcomp_text >> >> My point is that maybee you have a var that is getting declared >> >> dynamically >> >> that you are using in a function and it is not the type you are >> expecting >> >> it >> >> to be. >> >> Troy >> >> -----Original Message----- >> >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of >> Michael >> >> Moser >> >> 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

