Duplex client has its own listener loop, so special care on reply is needed.
[mono.git] / mcs / class / System.Data / System.Data.SqlClient / SqlError.cs
1 //
2 // System.Data.SqlClient.SqlError.cs
3 //
4 // Author:
5 //   Rodrigo Moya (rodrigo@ximian.com)
6 //   Daniel Morgan (danmorg@sc.rr.com)
7 //   Tim Coleman (tim@timcoleman.com)
8 //
9 // (C) Ximian, Inc 2002
10 // Copyright (C) Tim Coleman, 2002
11 //
12
13 //
14 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
15 //
16 // Permission is hereby granted, free of charge, to any person obtaining
17 // a copy of this software and associated documentation files (the
18 // "Software"), to deal in the Software without restriction, including
19 // without limitation the rights to use, copy, modify, merge, publish,
20 // distribute, sublicense, and/or sell copies of the Software, and to
21 // permit persons to whom the Software is furnished to do so, subject to
22 // the following conditions:
23 // 
24 // The above copyright notice and this permission notice shall be
25 // included in all copies or substantial portions of the Software.
26 // 
27 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
28 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
29 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
30 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
31 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
32 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
33 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 //
35
36 using System;
37 using System.Data;
38 using System.Runtime.InteropServices;
39
40 namespace System.Data.SqlClient {
41         /// <summary>
42         /// Describes an error from a SQL database.
43         /// </summary>
44         [Serializable]
45         public sealed class SqlError
46         {
47                 #region Fields
48
49                 byte errorClass = 0;
50                 int lineNumber = 0;
51                 string message = "";
52                 int number = 0;
53                 string procedure = "";
54                 string source = "";
55                 byte state = 0;
56
57                 [NonSerialized]         
58                 string server = "";
59                 
60
61                 #endregion // Fields
62
63                 #region Constructors
64
65                 internal SqlError (byte errorClass, int lineNumber, string message, int number, string procedure, string server, string source, byte state) 
66                 {
67                         this.errorClass = errorClass;
68                         this.lineNumber = lineNumber;
69                         this.message = message;
70                         this.number = number;
71                         this.procedure = procedure;
72                         this.server = server;
73                         this.source = source;
74                         this.state = state;
75                 }
76
77                 #endregion // Constructors
78                 
79                 #region Properties
80
81                 public byte Class {
82                         get { return errorClass; }
83                 }
84
85                 public int LineNumber {
86                         get { return lineNumber; }
87                 }
88
89                 public string Message {
90                         get { return message; }
91                 }
92                 
93                 public int Number {
94                         get { return number; }
95                 }
96
97                 public string Procedure {
98                         get { return procedure; }
99                 }
100
101                 public string Server {
102                         get { return server; }
103                 }
104
105                 public string Source {
106                         get { return source; }
107                 }
108
109                 public byte State {
110                         get { return state; }
111                 }
112
113                 #endregion
114
115                 #region Methods
116
117                 public override string ToString ()
118                 {
119                         return Message;
120                 }
121
122                 #endregion
123                 
124         }
125 }