|
|
@@ -10,6 +10,7 @@
|
|
|
using System.ComponentModel;
|
|
|
using System.Data;
|
|
|
using System.Data.Common;
|
|
|
+using System.Exception;
|
|
|
|
|
|
namespace System.Data.OleDb
|
|
|
{
|
|
|
@@ -18,11 +19,19 @@ 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;
|
|
|
@@ -59,19 +68,29 @@ namespace System.Data.OleDb
|
|
|
|
|
|
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 ();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -87,7 +106,11 @@ namespace System.Data.OleDb
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public OleDbTransaction BeginTransaction ()
|
|
|
+ /*
|
|
|
+ * Methods
|
|
|
+ */
|
|
|
+
|
|
|
+ IDbTransaction IDbConnection.BeginTransaction ()
|
|
|
{
|
|
|
if (m_gdaConnection != IntPtr.Zero)
|
|
|
return new OleDbTransaction (this);
|
|
|
@@ -95,12 +118,67 @@ namespace System.Data.OleDb
|
|
|
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;
|
|
|
}
|
|
|
}
|