Sorry, the heading should read "Deliberate DSN-Less Connection Failure to SQL Server Database". I couldn't change this as there does not appear to be means to do so.
I'm getting an (expected) error message with a DSN-Less connection to a SQL database on a SQL Server that says:
"Microsoft OLE DB Provider for SQL Server error '80040e4d'
Login failed for user '<username>'"
Now, i know why the connection failed as it was deliberate on my part to cause this error. I want to trap this error and convert it to text to say the database is not available, such as when it is shut down to do software maintenance on it, etc., rather than display the error message like the one given above.
How do i trap this error and convert it into some meaningful text on the web page to say the database is not available?
The code i am using is ASP Classic.
Most likely you would have to dig through the Microsoft SDK to find the list of SQL Server error codes and their meaning. You might get more information by posting on the Microsoft forum.
Thank you. I'm not so much concerned about the error codes, etc., as i already have these defined. What I'm trying to do is to catch the failed connection event and convert the connection failure into words like "Database Unavailable" on the web page rather than showing the default error message as noted previously.
Trying to find that in MSDN is like looking for a needle in a haystack.
If I understand you correctly you could call an error handling function, with the error number as a parameter. That function could contain a switch statement that takes the parameter and returns any words you want, based on the error number (parameter).
Or are you asking for help trapping the errors? I guess I don't understand completely.
Thank you. This is the answer I came up with, and it works:
ON ERROR RESUME NEXT
conntemp.open myDSN 'This activates the database connection, as given above this code.
IF ERR.NUMBER <>0 THEN 'There is far more than just one error code for this failure. Hence, "<> 0 ".
Then in the web page, retrieve the value for DBConnection and evaluate it. Where DBConnection="0", this indicates a failure to connect. For connection failuire, display the text "Database Unavailable" on the web page, otherwise, continue with producing the asp web page normally.
Testing has shown it to work well. Now implementing it into the production system.
Does this all make sense?
So, this is for ASP? I didn't understand that point, glad you got it worked out.
I haven't used vbscript in many years but I don't think it supports try/catch (unless it was added in recent years). In that case 'ON ERROR RESUME NEXT' is the way to go. I believe there should be a 'On Error GoTo 0' at the end, to turn on error checking again.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)