Yes, of course you're right Albert! It is possible that the first "if" statement might evaluate properly, but certainly the other "if" statements that follow would NEVER evaluate correctly.
Karen -----Original Message----- From: Albert Berry <[email protected]> To: RBASE-L Mailing List <[email protected]> Sent: Sun, Jun 7, 2015 11:26 am Subject: [RBASE-L] - Re: Autochk Karen nailed the problem. You must immediately capture the error variable before you make any other code, because the code changes the error variable back to 0 - no error on the IF line, because that line had no error. Albert On 6/7/2015 10:10 AM, Karen Tellef wrote: Tom: I have code almost identical to yours that I use and it works. The only difference is that I trap the error variable first before testing. I cannot imagine that it should make a difference, but it would be an easy thing to try. I also use the "full" parameter. Code below, feel free to use any of it. Karen SET ERROR VAR xError OUTPUT Autochk.TXT WITH SCREEN AUTOCHK RKTPRDE FULL SET VAR fvChkErr = .xError OUTPUT SCREEN CLS IF fvChkErr > 40 THEN DIALOG 'AUTOCHK has found ERRORS in your database! Reloading the database+ will fix the errors, but you may lose some data. DO YOU WANT TO CONTINUE+ WITH THE RELOAD?'=75 vresp vendkey NO + CAPTION 'Autochk File saved AUTOCHK.TXT' ICON serious + OPTION MESSAGE_FONT_SIZE 14 + | MESSAGE_FONT_BOLD ON | BACK_COLOR WHITE | MESSAGE_COLOR WHITE + | MESSAGE_FONT_COLOR RED IF vresp = 'NO' THEN GOTO ENDPROG ENDIF ENDIF IF fvChkErr > 0 AND fvChkErr <= 50 THEN PAUSE 3 USING ' ' DIALOG 'For some reason, the AUTOCHK program could not run, so I do not know+ if your database is okay or not. You should call your database administrator+ to find the problem. DO YOU WANT TO CONTINUE WITH THE RELOAD?'=75 vresp vendkey NO + CAPTION 'Autochk not run' ICON serious + OPTION MESSAGE_FONT_SIZE 14 + | MESSAGE_FONT_BOLD ON | BACK_COLOR WHITE | MESSAGE_COLOR WHITE + | MESSAGE_FONT_COLOR RED IF vresp = 'NO' THEN GOTO ENDPROG ENDIF ENDIF IF fvChkErr = 0 THEN DIALOG 'Database passed the integrity check! Do you want to RELOAD?' + vresp vendkey NO CAPTION .fvCaption ICON question OPTION MESSAGE_FONT_SIZE 11 IF vresp = 'NO' THEN CLOSEWINDOW RETURN ENDIF ENDIF -----Original Message----- From: Buddy Walker <[email protected]> To: RBASE-L Mailing List <[email protected]> Sent: Sun, Jun 7, 2015 11:02 am Subject: [RBASE-L] - RE: Autochk Tom What not put the output to a file and then look in the file errors. The way I would do is (make sure you put the word “full” after database name R:>out mydatabaseerr.asc R:>autochk databasename full R:>out term R:>RBE mydatabaseerr.asc Buddy From: [email protected] [mailto:[email protected]] On Behalf Of TOM HART Sent: Sunday, June 07, 2015 11:44 AM To: RBASE-L Mailing List Subject: [RBASE-L] - Autochk I have been having trouble with errors in a database so I set up the routine from help: SET ERROR VAR E1 WRITE 'Checking database for errors...' AUTOCHK database IF E1 > 40 THEN WRITE 'AUTOCHK has found errors in the database!' BEEP ENDIF If E1 > 0 and E1 < 50 THEN WRITE 'AUTOCHK will not run - User Abort or Out of Memory' BEEP ENDIF IF E1 = 0 THEN WRITE 'AUTOCHK successful - No errors found' ENDIF PAUSE 2 RETURN When I run this I get no errors, E1 returns 0, but if I run 'autochk database' from the R> I get errors and E1 is some big number like 1249. Any suggestions. My ultimate goal is the send me an email saying there is a problem, I have got that all setup to work, but since my above routine does not show errors it does not send Tom Hart -- A democracy ..." can only exist until the majority discovers it can vote itself largess out of the public treasury." Attributed to Alexander Fraser Tytler 1747-1813

