2003-02-11 Tim Coleman <tim@timcoleman.com>
[mono.git] / mcs / class / System.Data.OracleClient / System.Data.OracleClient / OracleParameter.cs
1 // 
2 // OracleParameter.cs
3 //
4 // Part of the Mono class libraries at
5 // mcs/class/System.Data.OracleClient/System.Data.OracleClient
6 //
7 // Assembly: System.Data.OracleClient.dll
8 // Namespace: System.Data.OracleClient
9 //
10 // Authors: 
11 //    Tim Coleman <tim@timcoleman.com>
12 //
13 // Copyright (C) Tim Coleman , 2003
14 //
15 // Licensed under the MIT/X11 License.
16 //
17
18 using System;
19 using System.Collections;
20 using System.ComponentModel;
21 using System.Data;
22 using System.Data.OracleClient.Oci;
23
24 namespace System.Data.OracleClient {
25         public sealed class OracleParameter : MarshalByRefObject, IDbDataParameter, IDataParameter, ICloneable
26         {
27                 #region Fields
28
29                 DbType dbType = DbType.AnsiString;
30                 ParameterDirection direction = ParameterDirection.Input;
31                 bool isNullable = false;
32                 int offset = 0;
33                 OracleType oracleType = OracleType.VarChar;
34                 string name;
35                 byte precision = 0x0;
36                 byte scale = 0x0;
37                 int size = 0;
38                 bool sizeSet = false;
39                 string srcColumn = String.Empty;
40                 DataRowVersion srcVersion = DataRowVersion.Current;
41                 object value = null;
42
43                 OracleParameterCollection container = null;
44
45                 #endregion // Fields
46
47                 #region Constructors
48
49                 public OracleParameter ()
50                 {
51                 }
52
53                 public OracleParameter (string name, object value)
54                 {
55                 }
56
57                 public OracleParameter (string name, OracleType dataType)
58                 {
59                 }
60
61                 public OracleParameter (string name, OracleType dataType, int size)
62                 {
63                 }
64
65                 public OracleParameter (string name, OracleType dataType, int size, string srcColumn)
66                 {
67                 }
68
69                 public OracleParameter (string name, OracleType dataType, int size, ParameterDirection direction, bool isNullable, byte precision, byte scale, string srcColumn, DataRowVersion srcVersion, object value)
70                 {
71                 }
72
73                 #endregion // Constructors
74
75                 #region Properties
76
77                 internal OracleParameterCollection Container {
78                         get { return container; }
79                         set { container = value; }
80                 }
81
82                 public DbType DbType {
83                         get { return dbType; }
84                         set { SetDbType (value); }
85                 }
86
87                 public ParameterDirection Direction {
88                         get { return direction; }
89                         set { direction = value; }
90                 }
91
92                 public bool IsNullable {
93                         get { return isNullable; }
94                         set { isNullable = value; }
95                 }
96
97                 public int Offset {
98                         get { return offset; }
99                         set { offset = value; }
100                 }
101
102                 public OracleType OracleType {
103                         get { return oracleType; }
104                         set { SetOracleType (value); }
105                 }
106                 
107                 public string ParameterName {
108                         get { return name; }
109                         set { name = value; }
110                 }
111
112                 public byte Precision {
113                         get { return precision; }
114                         set { /* NO EFFECT*/ }
115                 }
116
117                 public byte Scale {
118                         get { return precision; }
119                         set { /* NO EFFECT*/ }
120                 }
121
122                 public int Size {
123                         get { return size; }
124                         set { 
125                                 sizeSet = true;
126                                 size = value; 
127                         }
128                 }
129
130                 public string SourceColumn {
131                         get { return srcColumn; }
132                         set { srcColumn = value; }
133                 }
134
135                 public DataRowVersion SourceVersion {
136                         get { return srcVersion; }
137                         set { srcVersion = value; }
138                 }
139
140                 public object Value {
141                         get { return this.value; }
142                         set { this.value = value; }
143                 }
144
145                 #endregion // Properties
146
147                 #region Methods
148
149                 [MonoTODO]
150                 object ICloneable.Clone ()
151                 {
152                         throw new NotImplementedException ();
153                 }
154
155                 public override string ToString ()
156                 {
157                         return ParameterName;
158                 }
159
160                 void SetDbType (DbType dbType)
161                 {
162                         this.dbType = dbType;
163                 }
164
165                 void SetOracleType (OracleType oracleType)
166                 {
167                         this.oracleType = oracleType;
168                 }
169
170                 #endregion // Methods
171         }
172 }