Yes, it's for catch.
A useful development hack is to change nsadmin/modules/tcl/file.tcl so
that when an error occurs, the error info is passed to an error handler
and displayed as a web page. That way the developer doesn't have to
keep a tail running of the server log when testing and paw through it.
But the detailed error info was being wiped out by the "not a statement
returning rows" change. This change restores the detailed error info.
Jim
>
> Is this only for the "catch" info in Tcl? In the server log it is still
> reported with the orriginal server message, one error before the "not
> returning rows" one.
>
> Bas.
>
> Jim Wilcoxson said:
> > In one of the 3.x releases, I think after 3.2, AS stopped reporting
> > the details of SQL select errors. Instead of giving the detailed
> > SQL error, like "expected comma after blah", AS started reporting
> > "Query was not a statement returning rows." This isn't very useful
> > for error trapping and reporting.
> >
> > Here's a patch to go back to the old behavior. Not sure whether this
> > even applies to 4x.
> >
> > *** dbdrv.c.~1~ Tue Jan 16 10:14:27 2001
> > --- dbdrv.c Tue Dec 9 10:34:35 2003
> > ***************
> > *** 367,368 ****
> > --- 367,369 ----
> > Ns_Set *setPtr = NULL;
> > + int status = NS_ERROR;
> >
> > ***************
> > *** 371,377 ****
> > if (driverPtr->execProc != NULL) {
> > ! if (Ns_DbExec(handle, sql) == NS_ROWS) {
> > ! setPtr = Ns_DbBindRow(handle);
> > ! } else {
> > Ns_DbSetException(handle, "NSDB",
> > "Query was not a statement returning rows.");
> > }
> > --- 372,379 ----
> > if (driverPtr->execProc != NULL) {
> > ! status = Ns_DbExec(handle, sql);
> > ! if (status == NS_DML) {
> > Ns_DbSetException(handle, "NSDB",
> > "Query was not a statement returning rows.");
> > + } else if (status == NS_ROWS) {
> > + setPtr = Ns_DbBindRow(handle);
> > }
> >
> >
> > --
> > AOLserver - http://www.aolserver.com/
> >
> > To Remove yourself from this list, simply send an email to
> > <[EMAIL PROTECTED]> with the
> > body of "SIGNOFF AOLSERVER" in the email message. You can leave the
> > Subject: field of your email blank.
> >
>
>
> --
> AOLserver - http://www.aolserver.com/
>
> To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with
> the
> body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field
> of your email blank.
>
--
AOLserver - http://www.aolserver.com/
To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of
your email blank.