System.Drawing: added email to icon and test file headers
[mono.git] / mcs / class / System.Data / System.Data.Common / DbCommand.cs
1 //
2 // System.Data.Common.DbCommand
3 //
4 // Author:
5 //   Tim Coleman (tim@timcoleman.com)
6 //
7 // Copyright (C) Tim Coleman, 2003
8 //
9
10 //
11 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining
14 // a copy of this software and associated documentation files (the
15 // "Software"), to deal in the Software without restriction, including
16 // without limitation the rights to use, copy, modify, merge, publish,
17 // distribute, sublicense, and/or sell copies of the Software, and to
18 // permit persons to whom the Software is furnished to do so, subject to
19 // the following conditions:
20 // 
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
23 // 
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 //
32
33 #if NET_2_0 || TARGET_JVM
34
35 using System.ComponentModel;
36 using System.Data;
37
38 namespace System.Data.Common {
39         public abstract class DbCommand : Component, IDbCommand, IDisposable
40         {
41                 protected DbCommand ()
42                 {
43                 }
44
45                 #region Properties
46
47                 [DefaultValue ("")]
48                 [RefreshProperties (RefreshProperties.All)]
49                 public abstract string CommandText { get; set; }
50
51                 public abstract int CommandTimeout { get; set; }
52
53                 [DefaultValue (CommandType.Text)]
54                 [RefreshProperties (RefreshProperties.All)]
55                 public abstract CommandType CommandType { get; set; }
56
57                 [DefaultValue (null)]
58                 [Browsable (false)]
59                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
60                 public DbConnection Connection {
61                         get { return DbConnection; }
62                         set { DbConnection = value; }
63                 }
64
65                 protected abstract DbConnection DbConnection { get; set; }
66                 protected abstract DbParameterCollection DbParameterCollection { get; }
67                 protected abstract DbTransaction DbTransaction { get; set; }
68
69                 [EditorBrowsable (EditorBrowsableState.Never)]
70                 [Browsable (false)]
71                 [DefaultValue (true)]
72                 [DesignOnly (true)]
73                 public abstract bool DesignTimeVisible { get; set; }
74
75                 IDbConnection IDbCommand.Connection {
76                         get { return Connection; }
77                         set { Connection = (DbConnection) value; }
78                 }
79
80                 IDataParameterCollection IDbCommand.Parameters {
81                         get { return Parameters; }
82                 }
83
84                 IDbTransaction IDbCommand.Transaction {
85                         get { return Transaction; }
86                         set { Transaction = (DbTransaction) value; }
87                 }
88
89                 [Browsable (false)]
90                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
91                 public DbParameterCollection Parameters {
92                         get { return DbParameterCollection; }
93                 }
94
95                 [Browsable (false)]
96                 [DefaultValue (null)]
97                 [DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
98                 public DbTransaction Transaction {
99                         get { return DbTransaction; }
100                         set { DbTransaction = value; }
101                 }
102
103                 [DefaultValue (UpdateRowSource.Both)]
104                 public abstract UpdateRowSource UpdatedRowSource { get; set; }
105
106                 #endregion // Properties
107
108                 #region Methods
109
110                 public abstract void Cancel ();
111                 protected abstract DbParameter CreateDbParameter ();
112
113                 public DbParameter CreateParameter ()
114                 {
115                         return CreateDbParameter ();
116                 }
117
118                 protected abstract DbDataReader ExecuteDbDataReader (CommandBehavior behavior);
119                 public abstract int ExecuteNonQuery ();
120                 
121                 public DbDataReader ExecuteReader ()
122                 {
123                         return ExecuteDbDataReader (CommandBehavior.Default);
124                 }
125
126                 public DbDataReader ExecuteReader (CommandBehavior behavior)
127                 {
128                         return ExecuteDbDataReader (behavior);
129                 }
130
131                 public abstract object ExecuteScalar ();
132
133                 IDbDataParameter IDbCommand.CreateParameter ()
134                 {
135                         return CreateParameter ();
136                 }
137
138                 IDataReader IDbCommand.ExecuteReader ()
139                 {
140                         return ExecuteReader ();
141                 }
142
143                 IDataReader IDbCommand.ExecuteReader (CommandBehavior behavior)
144                 {
145                         return ExecuteReader (behavior);
146                 }
147
148                 public abstract void Prepare ();
149                 
150                 #endregion // Methods
151
152         }
153 }
154
155 #endif