2 // Mono.Data.SybaseClient.SybaseException.cs
5 // Tim Coleman (tim@timcoleman.com)
7 // Copyright (C) Tim Coleman, 2002
10 using Mono.Data.TdsClient.Internal;
13 using System.Runtime.Serialization;
16 namespace Mono.Data.SybaseClient {
18 public sealed class SybaseException : SystemException
22 SybaseErrorCollection errors;
28 internal SybaseException ()
29 : base ("a SQL Exception has occurred.")
31 errors = new SybaseErrorCollection();
34 internal SybaseException (byte theClass, int lineNumber, string message, int number, string procedure, string server, string source, byte state)
37 errors = new SybaseErrorCollection (theClass, lineNumber, message, number, procedure, server, source, state);
40 #endregion // Constructors
45 get { return errors [0].Class; }
48 public SybaseErrorCollection Errors {
49 get { return errors; }
52 public int LineNumber {
53 get { return errors [0].LineNumber; }
56 public override string Message {
58 StringBuilder result = new StringBuilder ();
59 foreach (SybaseError error in Errors) {
60 if (result.Length > 0)
62 result.Append (error.Message);
64 return result.ToString ();
69 get { return errors [0].Number; }
72 public string Procedure {
73 get { return errors [0].Procedure; }
76 public string Server {
77 get { return errors [0].Server; }
80 public override string Source {
81 get { return errors [0].Source; }
85 get { return errors [0].State; }
88 #endregion // Properties
93 public override void GetObjectData (SerializationInfo si, StreamingContext context)
95 throw new NotImplementedException ();
98 internal static SybaseException FromTdsInternalException (TdsInternalException e)
100 return new SybaseException (e.Class, e.LineNumber, e.Message, e.Number, e.Procedure, e.Server, "Mono SybaseClient Data Provider", e.State);
103 #endregion // Methods