New test.
[mono.git] / mcs / class / Mono.Data.SqliteClient / Mono.Data.SqliteClient / SqliteParameter.cs
1 //
2 // Mono.Data.SqliteClient.SqliteParameter.cs
3 //
4 // Represents a parameter to a SqliteCommand, and optionally, its mapping to 
5 // DataSet columns.
6 //
7 // Author(s): Vladimir Vukicevic  <vladimir@pobox.com>
8 //            Everaldo Canuto  <everaldo_canuto@yahoo.com.br>
9 //
10 // Copyright (C) 2002  Vladimir Vukicevic
11 //
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
19 // 
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
22 // 
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 //
31
32 using System;
33 using System.Data;
34
35 namespace Mono.Data.SqliteClient
36 {
37         public class SqliteParameter : IDbDataParameter
38         {
39
40                 #region Fields
41                 
42                 private string name;
43                 private DbType type;
44                 private string source_column;
45                 private ParameterDirection direction;
46                 private DataRowVersion row_version;
47                 private object param_value;
48                 private byte precision;
49                 private byte scale;
50                 private int size;
51                 
52                 #endregion
53
54                 #region Constructors and destructors
55                 
56                 public SqliteParameter ()
57                 {
58                         type = DbType.String;
59                         direction = ParameterDirection.Input;
60                 }
61                 
62                 public SqliteParameter (string name, DbType type)
63                 {
64                         this.name = name;
65                         this.type = type;
66                 }
67                 
68                 public SqliteParameter (string name, object value)
69                 {
70                         this.name = name;
71                         type = DbType.String;
72                         param_value = value;
73                         direction = ParameterDirection.Input;
74                 }
75                 
76                 public SqliteParameter (string name, DbType type, int size) : this (name, type)
77                 {
78                         this.size = size;
79                 }
80                 
81                 public SqliteParameter (string name, DbType type, int size, string src_column) : this (name ,type, size)
82                 {
83                         source_column = src_column;
84                 }
85                 
86                 #endregion
87
88                 #region Properties
89                 
90                 public DbType DbType {
91                         get { return type; }
92                         set { type = value; }
93                 }
94                 
95                 public ParameterDirection Direction {
96                         get { return direction; }
97                         set { direction = value; }
98                 }
99                 
100                 public bool IsNullable {
101                         get { return true; }
102                 }
103                 
104                 public string ParameterName {
105                         get { return name; }
106                         set { name = value; }
107                 }
108                 
109                 public byte Precision {
110                         get { return precision; }
111                         set { precision = value; }
112                 }
113                 
114                 public byte Scale {
115                         get { return scale; }
116                         set { scale = value; }
117                 }
118                 
119                 public int Size {
120                         get { return size; }
121                         set { size = value; }
122                 }
123                 
124                 public string SourceColumn {
125                         get { return source_column; }
126                         set { source_column = value; }
127                 }
128                 
129                 public DataRowVersion SourceVersion {
130                         get { return row_version; }
131                         set { row_version = value; }
132                 }
133                 
134                 public object Value {
135                         get { return param_value; }
136                         set { param_value = value; }
137                 }
138                 
139                 #endregion
140
141         }
142 }