**** Merged from MCS ****
[mono-project.git] / mcs / class / Mono.Data.PostgreSqlClient / Mono.Data.PostgreSqlClient / PgSqlError.cs
blobc254952168e26980d5b78e41ddcedeb4c69f0a14
1 //
2 // Mono.Data.PostgreSqlClient.PgSqlError.cs
3 //
4 // Author:
5 // Rodrigo Moya (rodrigo@ximian.com)
6 // Daniel Morgan (danmorg@sc.rr.com)
7 //
8 // (C) Ximian, Inc 2002
9 //
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
19 //
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
22 //
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using System;
32 using System.Data;
33 using System.Runtime.InteropServices;
35 namespace Mono.Data.PostgreSqlClient
37 /// <summary>
38 /// Describes an error from a SQL database.
39 /// </summary>
40 [MonoTODO]
41 public sealed class PgSqlError
43 byte theClass = 0;
44 int lineNumber = 0;
45 string message = "";
46 int number = 0;
47 string procedure = "";
48 string server = "";
49 string source = "";
50 byte state = 0;
52 internal PgSqlError(byte theClass, int lineNumber,
53 string message, int number, string procedure,
54 string server, string source, byte state) {
55 this.theClass = theClass;
56 this.lineNumber = lineNumber;
57 this.message = message;
58 this.number = number;
59 this.procedure = procedure;
60 this.server = server;
61 this.source = source;
62 this.state = state;
65 #region Properties
67 [MonoTODO]
68 /// <summary>
69 /// severity level of the error
70 /// </summary>
71 public byte Class {
72 get {
73 return theClass;
77 [MonoTODO]
78 public int LineNumber {
79 get {
80 return lineNumber;
84 [MonoTODO]
85 public string Message {
86 get {
87 return message;
91 [MonoTODO]
92 public int Number {
93 get {
94 return number;
98 [MonoTODO]
99 public string Procedure {
100 get {
101 return procedure;
105 [MonoTODO]
106 public string Server {
107 get {
108 return server;
112 [MonoTODO]
113 public string Source {
114 get {
115 return source;
119 [MonoTODO]
120 public byte State {
121 get {
122 return state;
126 #endregion
128 #region Methods
130 [MonoTODO]
131 public override string ToString ()
133 String toStr;
134 String stackTrace;
135 stackTrace = " <Stack Trace>";
136 // FIXME: generate the correct SQL error string
137 toStr = "PgSqlError:" + message + stackTrace;
138 return toStr;
141 internal void SetClass(byte theClass) {
142 this.theClass = theClass;
145 internal void SetLineNumber(int lineNumber) {
146 this.lineNumber = lineNumber;
149 internal void SetMessage(string message) {
150 this.message = message;
153 internal void SetNumber(int number) {
154 this.number = number;
157 internal void SetProcedure(string procedure) {
158 this.procedure = procedure;
161 internal void SetServer(string server) {
162 this.server = server;
165 internal void SetSource(string source) {
166 this.source = source;
169 internal void SetState(byte state) {
170 this.state = state;
173 #endregion