+2002-06-01 Rodrigo Moya <rodrigo@ximian.com>
+
+ * libgda.cs: added new libgda API functions.
+
+ * OleDbConnection.cs (Provider): implemented.
+ (BeginTransaction): made it overload IDbConnection methods.
+ (ChangeDatabase): new stub, needs some work on libgda for being
+ implemented.
+ (Clone): new stub.
+ (Close): implemented.
+ (CreateCommand): implemented.
+ (GetOleDbSchemaTable): new stub, until I understand what to do here.
+ (Open): implemented basic stuff, which is just supporting connection
+ strings that represent a GDA data source name. More to come.
+ (InfoMessage, StateChange): added events.
+
+ * TestOleDb.cs: test program for System.Data.OleDb.
+
2002-05-29 Rodrigo Moya <rodrigo@ximian.com>
* libgda.cs: added static constructor.
using System.ComponentModel;
using System.Data;
using System.Data.Common;
+using System.Exception;
namespace System.Data.OleDb
{
private IntPtr m_gdaConnection = IntPtr.Zero;
private string m_string = "";
private int m_timeout = 15; // default is 15 seconds
+
+ /*
+ * Constructors
+ */
public OleDbConnection ()
{
}
+ /*
+ * Properties
+ */
+
public OleDbConnection (string cnc_string) : this ()
{
m_string = cnc_string;
public string DataSource
{
+ [MonoTODO]
get {
+ throw new NotImplementedException ();
}
}
public string Provider
{
get {
+ if (m_gdaConnection != IntPtr.Zero
+ && libgda.gda_connection_is_open (m_gdaConnection)) {
+ return libgda.gda_connection_get_provider (m_gdaConnection);
+ }
+
+ return null;
}
}
public string ServerVersion
{
+ [MonoTODO]
get {
+ throw new NotImplementedException ();
}
}
}
}
- public OleDbTransaction BeginTransaction ()
+ /*
+ * Methods
+ */
+
+ IDbTransaction IDbConnection.BeginTransaction ()
{
if (m_gdaConnection != IntPtr.Zero)
return new OleDbTransaction (this);
return null;
}
- public OleDbTransaction BeginTransaction (IsolationLevel level)
- {
- if (m_gdaConnection != IntPtr.Zero)
+ IDbTransaction IDbConnection.BeginTransaction (IsolationLevel level)
+ {
+ if (m_gdaConnection != IntPtr.Zero)
return new OleDbTransaction (this, level);
return null;
- }
+ }
+
+ void IDbConnection.ChangeDatabase (string name)
+ {
+ // FIXME: see http://bugzilla.gnome.org/show_bug.cgi?id=83315
+ }
+
+ [MonoTODO]
+ object ICloneable.Clone ()
+ {
+ throw new NotImplementedException();
+ }
+
+ void IDbConnection.Close ()
+ {
+ if (m_gdaConnection != IntPtr.Zero) {
+ libgda.gda_connection_close (m_gdaConnection);
+ m_gdaConnection = IntPtr.Zero;
+ }
+ }
+
+ IDbCommand IDbConnection.CreateCommand ()
+ {
+ if (m_gdaConnection != IntPtr.Zero
+ && libgda.gda_connection_is_open (m_gdaConnection)) {
+ return new OleDbCommand ();
+ }
+
+ return null;
+ }
+
+ [MonoTODO]
+ public DataTable GetOleDbSchemaTable (Guid schema,
+ object[] restrictions)
+ {
+ throw new NotImplementedException ();
+ }
+
+ void IDbConnection.Open ()
+ {
+ if (m_gdaConnection != IntPtr.Zero ||
+ libgda.gda_connection_is_open (m_gdaConnection))
+ throw new InvalidOperationException ();
+
+ m_gdaConnection = libgda.gda_client_open_connection (
+ libgda.GdaClient,
+ m_string,
+ "", "");
+ }
+
+ /*
+ * Events
+ */
+
+ public event OleDbInfoMessageEventHandler InfoMessage;
+ public event StateChangeEventHandler StateChange;
}
}