2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / Mono.Data.PostgreSqlClient / Mono.Data.PostgreSqlClient / PgSqlError.cs
index c80aa3cf25101ef103aea9a09c84247d0ae47486..c254952168e26980d5b78e41ddcedeb4c69f0a14 100644 (file)
@@ -1,5 +1,5 @@
 //
-// System.Data.SqlClient.SqlError.cs
+// Mono.Data.PostgreSqlClient.PgSqlError.cs
 //
 // Author:
 //   Rodrigo Moya (rodrigo@ximian.com)
 //
 // (C) Ximian, Inc 2002
 //
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
 using System;
 using System.Data;
 using System.Runtime.InteropServices;
 
-namespace System.Data.SqlClient
+namespace Mono.Data.PostgreSqlClient
 {
        /// <summary>
        /// Describes an error from a SQL database.
        /// </summary>
        [MonoTODO]
-       public sealed class SqlError
+       public sealed class PgSqlError
        {
+               byte theClass = 0;
+               int lineNumber = 0;
+               string message = "";
+               int number = 0;
+               string procedure = "";
+               string server = "";
+               string source = "";
+               byte state = 0;
+
+               internal PgSqlError(byte theClass, int lineNumber,
+                       string message, int number, string procedure,
+                       string server, string source, byte state) {
+                       this.theClass = theClass;
+                       this.lineNumber = lineNumber;
+                       this.message = message;
+                       this.number = number;
+                       this.procedure = procedure;
+                       this.server = server;
+                       this.source = source;
+                       this.state = state;
+               }
+               
                #region Properties
 
                [MonoTODO]
+               /// <summary>
+               /// severity level of the error
+               /// </summary>
                public byte Class {
                        get { 
-                               throw new NotImplementedException ();
+                               return theClass;
                        }
                }
 
                [MonoTODO]
                public int LineNumber {
                        get { 
-                          throw new NotImplementedException ();
+                          return lineNumber;
                   }
                }
 
                [MonoTODO]
                public string Message {
                        get { 
-                               throw new NotImplementedException ();
+                               return message;
                        }
                }
                
                [MonoTODO]
                public int Number {
                        get { 
-                               throw new NotImplementedException ();
+                               return number;
                        }
                }
 
                [MonoTODO]
                public string Procedure {
                        get { 
-                               throw new NotImplementedException ();
+                               return procedure;
                        }
                }
 
                [MonoTODO]
                public string Server {
                        get { 
-                               throw new NotImplementedException ();
+                               return server;
                        }
                }
 
                [MonoTODO]
                public string Source {
                        get { 
-                               throw new NotImplementedException ();
+                               return source;
                        }
                }
 
                [MonoTODO]
                public byte State {
                        get { 
-                               throw new NotImplementedException ();
+                               return state;
                        }
                }
 
                #endregion
 
                #region Methods
-               
+
                [MonoTODO]
                public override string ToString ()
                {
-                       throw new NotImplementedException ();
+                       String toStr;
+                       String stackTrace;
+                       stackTrace = " <Stack Trace>";
+                       // FIXME: generate the correct SQL error string
+                       toStr = "PgSqlError:" + message + stackTrace;
+                       return toStr;
                }
-               #endregion
 
-               #region Destructors
+               internal void SetClass(byte theClass) {
+                       this.theClass = theClass;
+               }
 
-               // FIXME: do the destructor
-/*
-               [MonoTODO]
-               [ClassInterface(ClassInterfaceType.AutoDual)]
-               ~SqlError()
-               {
+               internal void SetLineNumber(int lineNumber) {
+                       this.lineNumber = lineNumber;
+               }
+
+               internal void SetMessage(string message) {
+                       this.message = message;
+               }
+
+               internal void SetNumber(int number) {
+                       this.number = number;
+               }
+
+               internal void SetProcedure(string procedure) {
+                       this.procedure = procedure;
+               }
+
+               internal void SetServer(string server) {
+                       this.server = server;
+               }
+
+               internal void SetSource(string source) {
+                       this.source = source;
+               }
 
+               internal void SetState(byte state) {
+                       this.state = state;
                }
-*/
 
                #endregion