My pleasure, Mr Sherer.

But there's no need to be so formal - even if it is rather nice once in a
while! <g>

Regards,
Alastair.


----- Original Message ----- 
From: "Scott Sherer" <[EMAIL PROTECTED]>
To: "RBG7-L Mailing List" <[email protected]>
Sent: Wednesday, December 29, 2004 7:08 PM
Subject: [RBG7-L] - Re: error 2583


> Thank you Mr. Burr.  I'll try it :)
>
> Scott Sherer
>
> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Alastair
Burr
> Sent: Wednesday, December 29, 2004 12:29 PM
> To: RBG7-L Mailing List
> Subject: [RBG7-L] - Re: error 2583
>
> Paula's first post on this subject prompted me to look again at the old
> "Error Database" that was available with one of the older versions. After
> all this time it's perhaps not too surprising that it has gone walkabout
and
> I can't find it. If anybody has a copy I'd be grateful for a copy
> (off-list).
>
> However, I don't think that the database produced by the code offered in
the
> reply below is quite as accurate as might be supposed:
>
> As far as I can tell, a small minority of the Error Messages contain CR/LF
> characters which mean that the loading of the data back from the output
file
> is not accurate in those cases. It also produces [Warning] and other
> messages.
>
> I spent a while yesterday trying to get back all the data and hoping to be
> able to link the messages to the causes that were in the original Error
> Database. Unfortunately it seems that those "cause messages" are not
there.
>
> I came up with the code that follows. It's not the most elegant process
but
> it seems to work. If anybody has a better way of doing the load/update
> sequence it would be nice to know. I've left the VarChar column in the
> database so that the contents can be checked but I couldn't find a way to
> flag those where the contents varies from the message. It's fairly easy to
> pick out the likely candidates - choose those with funny characters to
start
> with!
>
> Here's my code. Feel free to modify and do what you want with it but if
you
> can improve on it (probably not hard) please let me (and the list) know:
>
> -- -----------------------------------------------------------------------
--
> --
> *( Filename: ErrMess.CMD    ...    ...    Date of last amendment:
> 29/12/2004 )
> *( Creates database/table containing the latest error messages from
> Base   )
> -- -----------------------------------------------------------------------
--
> --
> DISCONNECT
> -- Take note of the following 2 lines before running in an old R:Base
> session!
> CLEAR VAR vCaption, vMessage, vReplace, vErrNum, vError
> ERASE v7_Error.RB?
> CREATE SCHEMA AUTHOR v7_Error
> CREATE TEMP TABLE TEMP_ErrMsgs +
>   (ErrNum INTEGER, ErrMsgTxt NOTE, ErrMsgFle VARCHAR (3000) )
> SET VAR vCaption TEXT = 'R:Base Error Messages Database Creation'
> SET CAPTION .vCaption
> SET VAR vCaption = 'Please wait...'
> SET VAR vReplace   TEXT = NULL
> SET VAR vMessage   TEXT = 'Error Number: 0'
> SET VAR vErrNum INTEGER = 1
> SET VAR vError  INTEGER = NULL
> SET ERROR VARIABLE vErrVar
> SET NULL -0-
> CLS
> PAUSE 3 USING .vMessage CAPTION .vCaption
> SET MESSAGES OFF
> SET ERROR MESSAGES OFF
> SET ERROR MESSAGE  565 OFF  -- Invalid error message number
> SET ERROR MESSAGE 2059 OFF  -- No rows exist
> -- 29/12/2004: highest valid Error Number appears to be 3104.
> --             Tested up to: 99,999
> WHILE vErrNum < 3200 THEN
>   SET VAR vMessage = ('Error Number:' & (CTXT(.vErrNum)) )
>   PAUSE 4 USING .vMessage CAPTION .vCaption
>   OUTPUT Messages.$$$
>     SHOW ERROR vErrNum
>     SET VAR vError = .vErrVar
>   OUTPUT SCREEN
>   IF vError = 0 THEN
>     LOAD TEMP_ErrMsgs FROM Messages.$$$ AS FORMATTED USING ErrMsgTxt 1
1500
>     UPDATE TEMP_ErrMsgs SET ErrMsgFle = ['Messages.$$$'] WHERE COUNT =
LAST
>     UPDATE TEMP_ErrMsgs SET ErrNum    = .vErrNum WHERE ErrNum IS NULL
>     SET VAR vReplace = '(Unknown)'
>     SELECT ErrMsgTxt INTO vReplace FROM TEMP_ErrMsgs +
>       WHERE ErrNum = .vErrNum AND ErrMsgTxt IS NOT NULL
>     UPDATE TEMP_ErrMsgs SET ErrMsgTxt = .vReplace +
>       WHERE ErrNum = .vErrNum AND ErrMsgTxt IS NULL
>   ELSE
>     INSERT INTO TEMP_ErrMsgs (ErrNum, ErrMsgTxt) +
>                     VALUES (.vErrNum, '(Invalid Number)' )
>   ENDIF
>   SET VAR vErrNum = (.vErrNum + 1)
> ENDWHILE
> SET ERROR MESSAGE  565 ON
> SET ERROR MESSAGE 2059 ON
> SET VAR vMessage TEXT = 'Configuring Data'
> PAUSE 4 USING .vMessage CAPTION .vCaption
> CREATE INDEX TempIndexErrNum ON TEMP_ErrMsgs (ErrNum ASC)
> DELETE ROWS FROM TEMP_ErrMsgs WHERE ErrMsgFle IS NULL -- Removes most
dups.
> DELETE DUPLICATES FROM TEMP_ErrMsgs -- There shouldn't be any really.
> ALTER TABLE TEMP_ErrMsgs ADD COLUMN MessType TEXT (8)
> ALTER TABLE TEMP_ErrMsgs ALTER ErrMsgTxt TEXT (200) -- Check max length!
> UPDATE TEMP_ErrMsgs SET MessType = 'Error'   +
>   WHERE ErrMsgTxt CONTAINS '-ERROR-'
> UPDATE TEMP_ErrMsgs SET MessType = 'Warning' +
>   WHERE ErrMsgTxt CONTAINS '<WARNING>'
> UPDATE TEMP_ErrMsgs SET MessType = 'Invalid' +
>   WHERE ErrMsgTxt CONTAINS '(Invalid Number)'
> UPDATE TEMP_ErrMsgs SET MessType = 'Message' +
>   WHERE ErrMsgTxt IS NOT NULL AND MessType IS NULL
> UPDATE TEMP_ErrMsgs SET MessType = 'Unknown' +
>   WHERE ErrMsgTxt = '(Unknown)'
> -- Previous processing done in temp table for speed; now create real
table:
> PROJECT ErrMsgs FROM TEMP_ErrMsgs USING * +
>   ORDER BY MessType ASC, ErrMsgTxt ASC, ErrNum ASC
> DROP TABLE TEMP_ErrMsgs
> ERASE Messages.$$$
> CLEAR VAR vCaption, vMessage, vReplace, vErrNum, vError
> SET LAYOUT ON  -- layout needs changing and saving.
> CLS
> BROWSE * FROM ErrMsgs
> DISCONNECT
> RETURN
> *( End of program )
>
>
>
>
> ----- Original Message ----- 
> From: "Scott Sherer" <[EMAIL PROTECTED]>
> To: "RBG7-L Mailing List" <[email protected]>
> Sent: Tuesday, December 28, 2004 2:17 PM
> Subject: [RBG7-L] - Re: error 2583
>
>
> > Hello Doug,
> >
> > Nice job.  This works pretty well, I appreciate it.  Still, it would be
> work
> > much better if explanatory text accompanied each error message.  I
realize
> > that doesn't exist, but it would be most helpful.
> >
> > Scott Sherer
> >
> > -----Original Message-----
> > From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Doug
> Hamilton
> > Sent: Tuesday, December 28, 2004 7:56 AM
> > To: RBG7-L Mailing List
> > Subject: [RBG7-L] - Re: error 2583
> >
> > Paula, the code below will create a table called error_list with two
> > columns, error_text and error_code.  The code was posted by Mike Ramsour
> > in 1999:
> > "The bottom line is that this file creates a table and populates it with
> > error codes and their associated text.  In its present form I imposed an
> > upper limit of 5000 for the number of messages but I'm not sure how many
> > error codes there are.  Does anyone else?"
> >
> > I just tested it in 7.1 and it ran ok.
> > Hope this helps - Thanks to Mike.
> > Doug
> >
> > SET VAR vcntr INTEGER=0,verr_msg TEXT,vcol_val TEXT
> > CREATE TEMP TABLE error_list (error_text NOTE,error_code INT)
> > --
> > CREATE INDEX el_error_idx ON error_list (error_text)
> > --
> > SET MESSAGES OFF
> > SET ERROR MESSAGES OFF
> > --
> > WHILE vcntr < 5001 THEN
> >   OUTPUT errors.dat
> >   SHOW ERROR vcntr
> >   OUTPUT SCREEN
> >   LOAD error_list FROM errors.dat AS FORMATTED USING error_text 1 150
> >   SELECT error_text INTO vcol_val IND vcol_ind FROM error_list +
> >     WHERE COUNT=LAST
> >   IF vcol_val IS NOT NULL THEN
> >       UPDATE error_list SET error_code=.vcntr WHERE COUNT=LAST
> >       GOTO next_loop
> >     ELSE
> >       DELETE ROW FROM error_list WHERE COUNT=LAST
> >   ENDIF
> >   LABEL next_loop
> >   SET VAR vcntr=(.vcntr + 1)
> > ENDWHILE
> > --
> > QUIT
> >
> > Paula Stuart wrote:
> >
> > >Once again, I would like to comment that it would be VERY helpful to
> > >have an index of error messages and their meanings.  Nothing is so
> > >frustrating as to get an error message the meaning of which is lost on
> > >you.
> > >
> > >Paula Stuart
> > >
> > >
> >
>

Reply via email to