Mega Code Archive

 
Categories / Delphi / ADO Database
 

Raising mssql and sybase errors with a severity =10 do not get raised by sql links

Question: Why don't server errors with a severity <=10 get raised by SQL Links? Answer: According to MS documentation severity Level 0 and 10 are for Status Information only (Reported as Level 0) These messages are not errors; they provide additional information after certain statements have executed. Errors w/severity <=10 are also not returned by MS ODBC. ADDITIONAL INFORMATION AND EXAMPLES create procedure myerrorproc as begin RAISERROR ('my raiserror',11,127) end Using WISQL32: exec myerrorproc Returns the following: Msg 50000, Level 11, State 127 my raiserror create procedure myerrorproc2 as begin RAISERROR ('my raiserror',10,127) end Using WISQL32: exec myerrorproc2 Returns the following: my raiserror Info from MS SQL Server knowledgebase: RAISERROR Statement (version 6.5): "Messages with severity levels 10 and under are not errors, but they do provide additional information." Severity Levels 0 through 18 Severity Level 0 and 10: Status Information (Reported as Level 0) These messages are not errors; they provide additional information after certain statements have executed. Severity Levels 11 through 16 These messages indicate errors that can be corrected by the user. Severity Level 17: Insufficient Resources These messages indicate that the statement has caused SQL Server to run out of resources (such as locks or disk space for the database) or to exceed some limit set by the SA. These system limits include the number of databases that can be open at the same time and the number of connections allowed to SQL Server. Limits are stored in the sysconfigures table in the master database and can be changed with the sp_configure system stored procedure. (For details about using sp_configure, see the Microsoft SQL Server Transact-SQL Reference) Level 17 messages that indicate you have run out of space can usually be corrected by the database owner. Other level 17 messages are best addressed by the SA. Severity Level 18: Nonfatal Internal Error Detected These messages indicate that there is some type of internal software problem, but the statement finishes, and the connection to SQL Server is maintained. For example, a level 18 message occurs when SQL Server detects that a decision about the access path for a particular query has been made without a valid reason. The SA should be informed every time a level 18 message occurs.