Класс LinterSqlException
Класс предназначен для обработки кодов завершения, возвращаемых ADO.NET-провайдеру СУБД ЛИНТЕР.
Этот класс создается всякий раз при обнаружении ADO.NET-провайдером СУБД ЛИНТЕР кода завершения, полученного от ЛИНТЕР-сервера. (Ошибки на стороне клиентского приложения возникают как стандартные исключения среды CLR).
Полный список сообщений LinterSqlException и рекомендации по устранению ошибок см. в документе «СУБД ЛИНТЕР. Справочник кодов завершения».
Пример
// C# using System; using System.Data.LinterClient; class Program { public static void ShowLinterException(string connectionString) { string queryString = "EXECUTE NonExistantStoredProcedure"; using (LinterDbConnection connection = new LinterDbConnection(connectionString)) { LinterDbCommand command = new LinterDbCommand(queryString, connection); try { command.Connection.Open(); command.ExecuteNonQuery(); } catch (LinterSqlException ex) { Console.WriteLine("Код СУБД ЛИНТЕР: " + ex.Number); Console.WriteLine("Код операционной системы: " + ex.LinterSysErrorCode); Console.WriteLine("Номер строки SQL: " + ex.SqlLineNumber); Console.WriteLine("Позиция в строке SQL: " + ex.SqlPositionInLine); Console.WriteLine("Текст сообщения: " + ex.Message); Console.WriteLine("Имя поставщика: " + ex.Source); Console.WriteLine("Метод: " + ex.TargetSite); Console.WriteLine("Стек вызовов: "); Console.WriteLine(ex.StackTrace); } } } static void Main(string[] args) { ShowLinterException("Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8"); } } Результат выполнения примера: Код СУБД ЛИНТЕР: 2229 Код операционной системы: 2228225 Номер строки SQL: 1 Позиция в строке SQL: 34 Текст сообщения: [Linter error] unknown procedure Имя поставщика: .Net LinterClient Data Provider Метод: IntPtr prepare(System.Data.LinterClient.TCBL ByRef, System.String) Стек вызовов: at System.Data.LinterClient.LinterBaseFunctions.prepare(TCBL& cbl, String strQuery) at System.Data.LinterClient.CommandInfo.prepare(TCBL cbl, LinterDbParameter[]& lpars) at System.Data.LinterClient.MultipleCommands.prepare() at System.Data.LinterClient.LinterDbCommand.Prepare() at System.Data.LinterClient.LinterDbCommand.ExecuteNonQuery() at Program.ShowLinterException(String connectionString)
Свойства класса LinterSqlException
приведены в таблице 42.
Свойство | Описание |
---|---|
Data | Предоставляет массив пар «ключ/значение» с дополнительной информацией об исключении. |
ErrorCode | Предоставляет HRESULT кода завершения (32-битное значение (ULONG) используемое для описания кодов завершения). |
Errors | Предоставляет один или несколько объектов класса ПримечаниеВ текущей версии ADO.NET провайдера экземпляры класса |
HelpLink | Предоставляет/устанавливает ссылку на файл справки, связанный с заданным исключением. |
InnerException | Предоставляет экземпляр класса Exception , вызвавший текущее исключение. |
Message | Предоставляет текст сообщения, которое описывает текущее исключение. |
Number | Предоставляет числовое значение кода завершения СУБД ЛИНТЕР. |
Source | Предоставляет имя поставщика данных, сгенерировавшего код завершения. |
SqlLineNumber | Предоставляет номер строки в SQL запросе для ошибок транслятора SQL. |
SqlPositionInLine | Предоставляет позицию в строке SQL запроса для ошибок транслятора SQL |
StackTrace | Предоставляет строковое представление фрагмента стека вызова в момент возникновения текущего исключения. |
TargetSite | Предоставляет имя метода, в котором возникло текущее исключение. |
Методы класса LinterSqlException
приведены в таблице 43.
Метод | Описание |
---|---|
GetBaseException | Предоставляет корневое исключение. |
GetObjectData | Управляет сериализацией исключения. |
Синтаксис
[Serializable] public class LinterSqlException : DbException