| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- //
- // System.Data.OleDb.OleDbConnection
- //
- // Author:
- // Rodrigo Moya ([email protected])
- //
- // Copyright (C) Rodrigo Moya, 2002
- //
- using System.ComponentModel;
- using System.Data;
- using System.Data.Common;
- using System.Exception;
- namespace System.Data.OleDb
- {
- public sealed class OleDbConnection : Component, ICloneable, IDbConnection
- {
- 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;
- }
- string IDbConnection.ConnectionString
- {
- get {
- return m_string;
- }
- set {
- m_string = value;
- }
- }
- int IDbConnection.ConnectionTimeout
- {
- get {
- return m_timeout;
- }
- }
- string IDbConnection.Database
- {
- get {
- if (m_gdaConnection != IntPtr.Zero
- && libgda.gda_connection_is_open (m_gdaConnection)) {
- return libgda.gda_connection_get_database (m_gdaConnection);
- }
- return null;
- }
- }
- 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 ();
- }
- }
- ConnectionState IDbConnection.State
- {
- get {
- if (m_gdaConnection != IntPtr.Zero) {
- if (libgda.gda_connection_is_open (m_gdaConnection))
- return ConnectionState.Open;
- }
- return ConnectionState.Closed;
- }
- }
- /*
- * Methods
- */
-
- IDbTransaction IDbConnection.BeginTransaction ()
- {
- if (m_gdaConnection != IntPtr.Zero)
- return new OleDbTransaction (this);
- return null;
- }
- 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;
- }
- }
|