2 // System.Data.OleDb.OleDbException
5 // Rodrigo Moya (rodrigo@ximian.com)
6 // Tim Coleman (tim@timcoleman.com)
8 // Copyright (C) Rodrigo Moya, 2002
9 // Copyright (C) Tim Coleman, 2002
13 using System.Data.Common;
14 using System.Runtime.InteropServices;
15 using System.Runtime.Serialization;
17 namespace System.Data.OleDb
20 public sealed class OleDbException : ExternalException
22 private OleDbConnection connection;
26 internal OleDbException (OleDbConnection cnc)
31 #endregion // Constructors
35 public override int ErrorCode {
40 errors = libgda.gda_connection_get_errors (connection.GdaConnection);
41 if (errors != IntPtr.Zero) {
42 glist = (GdaList) Marshal.PtrToStructure (errors, typeof (GdaList));
43 return (int) libgda.gda_error_get_number (glist.data);
50 public OleDbErrorCollection Errors {
54 OleDbErrorCollection col = new OleDbErrorCollection ();
56 errors = libgda.gda_connection_get_errors (connection.GdaConnection);
57 if (errors != IntPtr.Zero) {
58 glist = (GdaList) Marshal.PtrToStructure (errors, typeof (GdaList));
59 while (glist != null) {
60 col.Add (new OleDbError (
61 libgda.gda_error_get_description (glist.data),
62 (int) libgda.gda_error_get_number (glist.data),
63 libgda.gda_error_get_source (glist.data),
64 libgda.gda_error_get_sqlstate (glist.data)));
65 glist = (GdaList) Marshal.PtrToStructure (glist.next,
74 public override string Message {
80 errors = libgda.gda_connection_get_errors (connection.GdaConnection);
81 if (errors != IntPtr.Zero) {
82 glist = (GdaList) Marshal.PtrToStructure (errors, typeof (GdaList));
83 while (glist != null) {
84 msg = msg + ";" + libgda.gda_error_get_description (glist.data);
85 glist = (GdaList) Marshal.PtrToStructure (glist.next,
96 public override string Source {
101 errors = libgda.gda_connection_get_errors (connection.GdaConnection);
102 if (errors != IntPtr.Zero) {
103 glist = (GdaList) Marshal.PtrToStructure (errors, typeof (GdaList));
104 return libgda.gda_error_get_source (glist.data);
111 #endregion // Properties
116 public override void GetObjectData (SerializationInfo si, StreamingContext context)
118 throw new NotImplementedException ();
121 #endregion // Methods