2002-04-23 Daniel Morgan <danmorg@sc.rr.com>
[mono.git] / mcs / class / Mono.Data.PostgreSqlClient / Mono.Data.PostgreSqlClient / PgSqlError.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 //
8 // (C) Ximian, Inc 2002
9 //
10 using System;
11 using System.Data;
12 using System.Runtime.InteropServices;
13
14 namespace System.Data.SqlClient
15 {
16         /// <summary>
17         /// Describes an error from a SQL database.
18         /// </summary>
19         [MonoTODO]
20         public sealed class SqlError
21         {
22                 byte theClass = 0;
23                 int lineNumber = 0;
24                 string message = "";
25                 int number = 0;
26                 string procedure = "";
27                 string server = "";
28                 string source = "";
29                 byte state = 0;
30
31                 internal SqlError(byte theClass, int lineNumber,
32                         string message, int number, string procedure,
33                         string server, string source, byte state) {
34                         this.theClass = theClass;
35                         this.lineNumber = lineNumber;
36                         this.message = message;
37                         this.number = number;
38                         this.procedure = procedure;
39                         this.server = server;
40                         this.source = source;
41                         this.state = state;
42                 }
43                 
44                 #region Properties
45
46                 [MonoTODO]
47                 /// <summary>
48                 /// severity level of the error
49                 /// </summary>
50                 public byte Class {
51                         get { 
52                                 return theClass;
53                         }
54                 }
55
56                 [MonoTODO]
57                 public int LineNumber {
58                         get { 
59                            return lineNumber;
60                    }
61                 }
62
63                 [MonoTODO]
64                 public string Message {
65                         get { 
66                                 return message;
67                         }
68                 }
69                 
70                 [MonoTODO]
71                 public int Number {
72                         get { 
73                                 return number;
74                         }
75                 }
76
77                 [MonoTODO]
78                 public string Procedure {
79                         get { 
80                                 return procedure;
81                         }
82                 }
83
84                 [MonoTODO]
85                 public string Server {
86                         get { 
87                                 return server;
88                         }
89                 }
90
91                 [MonoTODO]
92                 public string Source {
93                         get { 
94                                 return source;
95                         }
96                 }
97
98                 [MonoTODO]
99                 public byte State {
100                         get { 
101                                 return state;
102                         }
103                 }
104
105                 #endregion
106
107                 #region Methods
108
109                 [MonoTODO]
110                 public override string ToString ()
111                 {
112                         String toStr;
113                         String stackTrace;
114                         stackTrace = " <Stack Trace>";
115                         // FIXME: generate the correct SQL error string
116                         toStr = "SqlError:" + message + stackTrace;
117                         return toStr;
118                 }
119
120                 internal void SetClass(byte theClass) {
121                         this.theClass = theClass;
122                 }
123
124                 internal void SetLineNumber(int lineNumber) {
125                         this.lineNumber = lineNumber;
126                 }
127
128                 internal void SetMessage(string message) {
129                         this.message = message;
130                 }
131
132                 internal void SetNumber(int number) {
133                         this.number = number;
134                 }
135
136                 internal void SetProcedure(string procedure) {
137                         this.procedure = procedure;
138                 }
139
140                 internal void SetServer(string server) {
141                         this.server = server;
142                 }
143
144                 internal void SetSource(string source) {
145                         this.source = source;
146                 }
147
148                 internal void SetState(byte state) {
149                         this.state = state;
150                 }
151
152                 #endregion
153                 
154         }
155 }