2003-12-16 Tim Coleman <tim@timcoleman.com>
[mono.git] / mcs / class / System.Data / System.Data.Common / DbConnection.cs
1 //
2 // System.Data.Common.DbConnection
3 //
4 // Author:
5 //   Tim Coleman (tim@timcoleman.com)
6 //
7 // Copyright (C) Tim Coleman, 2003
8 //
9
10 #if NET_1_2
11
12 using System.ComponentModel;
13 using System.Data;
14 using System.EnterpriseServices;
15
16 namespace System.Data.Common {
17         public abstract class DbConnection : Component, IDbConnection, IDisposable
18         {
19                 #region Constructors
20
21                 protected DbConnection ()
22                 {
23                 }
24
25                 #endregion // Constructors
26
27                 #region Properties
28
29                 public abstract string ConnectionString { get; set; }
30                 public abstract int ConnectionTimeout { get; }
31                 public abstract string Database { get; }
32                 public abstract string DataSource { get; }
33                 public abstract string ServerVersion { get; }
34                 public abstract ConnectionState State { get; }
35
36                 #endregion // Properties
37
38                 #region Methods
39
40                 protected abstract DbTransaction BeginDbTransaction (IsolationLevel isolationLevel);
41
42                 [MonoTODO]
43                 public DbTransaction BeginTransaction ()
44                 {
45                         throw new NotImplementedException ();
46                 }
47
48                 [MonoTODO]
49                 public DbTransaction BeginTransaction (IsolationLevel isolationLevel)
50                 {
51                         throw new NotImplementedException ();
52                 }
53
54                 public abstract void ChangeDatabase (string databaseName);
55                 public abstract void Close ();
56
57                 public DbCommand CreateCommand ()
58                 {
59                         return CreateDbCommand ();
60                 }
61
62                 protected abstract DbCommand CreateDbCommand ();
63
64                 [MonoTODO]
65                 public virtual void EnlistDistributedTransaction (ITransaction transaction)
66                 {
67                         throw new NotImplementedException ();
68                 }
69
70                 [MonoTODO]
71                 public virtual DataTable GetSchema ()
72                 {
73                         throw new NotImplementedException ();
74                 }
75
76                 [MonoTODO]
77                 public virtual DataTable GetSchema (string collectionName)
78                 {
79                         throw new NotImplementedException ();
80                 }
81
82                 [MonoTODO]
83                 public virtual DataTable GetSchema (string collectionName, string[] restrictionValues)
84                 {
85                         throw new NotImplementedException ();
86                 }
87
88                 IDbTransaction IDbConnection.BeginTransaction ()
89                 {
90                         return BeginTransaction ();
91                 }
92
93                 IDbTransaction IDbConnection.BeginTransaction (IsolationLevel il)
94                 {
95                         return BeginTransaction (il);
96                 }
97
98                 IDbCommand IDbConnection.CreateCommand ()
99                 {
100                         return CreateCommand ();
101                 }
102                 
103                 public abstract void Open ();
104
105                 #endregion // Methods
106
107         }
108 }
109
110 #endif