2 // Mono.Data.PostgreSqlClient.PgSqlError.cs
5 // Rodrigo Moya (rodrigo@ximian.com)
6 // Daniel Morgan (danmorg@sc.rr.com)
8 // (C) Ximian, Inc 2002
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:
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
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.
33 using System.Runtime.InteropServices;
35 namespace Mono.Data.PostgreSqlClient
38 /// Describes an error from a SQL database.
41 public sealed class PgSqlError
47 string procedure = "";
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;
59 this.procedure = procedure;
69 /// severity level of the error
78 public int LineNumber {
85 public string Message {
99 public string Procedure {
106 public string Server {
113 public string Source {
131 public override string ToString ()
135 stackTrace = " <Stack Trace>";
136 // FIXME: generate the correct SQL error string
137 toStr = "PgSqlError:" + message + stackTrace;
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) {