X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FMono.Data.SqliteClient%2FMono.Data.SqliteClient%2FSqliteParameter.cs;h=b0dca170f7e2115f18802e2f566183ff96979072;hb=73e68c19840c913c52bbe0bd53e2621ca3fe71c2;hp=2f3fe13de877e0f09332454324fc52e14b2f4073;hpb=699e59742843044f6efa1726b7cb64f19d909e64;p=mono.git diff --git a/mcs/class/Mono.Data.SqliteClient/Mono.Data.SqliteClient/SqliteParameter.cs b/mcs/class/Mono.Data.SqliteClient/Mono.Data.SqliteClient/SqliteParameter.cs index 2f3fe13de87..b0dca170f7e 100644 --- a/mcs/class/Mono.Data.SqliteClient/Mono.Data.SqliteClient/SqliteParameter.cs +++ b/mcs/class/Mono.Data.SqliteClient/Mono.Data.SqliteClient/SqliteParameter.cs @@ -31,16 +31,26 @@ using System; using System.Data; +#if NET_2_0 +using System.Data.Common; +#endif namespace Mono.Data.SqliteClient { - public class SqliteParameter : IDbDataParameter + public class SqliteParameter : +#if NET_2_0 + DbParameter +#else + IDbDataParameter +#endif { #region Fields private string name; private DbType type; + private DbType originalType; + private bool typeSet; private string source_column; private ParameterDirection direction; private DataRowVersion row_version; @@ -48,6 +58,8 @@ namespace Mono.Data.SqliteClient private byte precision; private byte scale; private int size; + private bool isNullable; + private bool sourceColumnNullMapping; #endregion @@ -57,28 +69,31 @@ namespace Mono.Data.SqliteClient { type = DbType.String; direction = ParameterDirection.Input; + isNullable = true; } - public SqliteParameter (string name_in, DbType type_in) + public SqliteParameter (string name, DbType type) { - name = name_in; - type = type_in; + this.name = name; + this.type = type; + isNullable = true; } - public SqliteParameter (string name_in, object param_value_in) + public SqliteParameter (string name, object value) { - name = name_in; + this.name = name; type = DbType.String; - param_value = param_value_in; + param_value = value; direction = ParameterDirection.Input; + isNullable = true; } - public SqliteParameter (string name_in, DbType type_in, int size_in) : this (name_in, type_in) + public SqliteParameter (string name, DbType type, int size) : this (name, type) { - size = size_in; + this.size = size; } - public SqliteParameter (string name_in, DbType type_in, int size, string src_column) : this (name_in ,type_in) + public SqliteParameter (string name, DbType type, int size, string src_column) : this (name ,type, size) { source_column = src_column; } @@ -87,25 +102,48 @@ namespace Mono.Data.SqliteClient #region Properties +#if NET_2_0 + override +#endif public DbType DbType { get { return type; } - set { type = value; } + set { + if (!typeSet) { + originalType = type; + typeSet = true; + } + type = value; + if (!typeSet) + originalType = type; + } } - + +#if NET_2_0 + override +#endif public ParameterDirection Direction { get { return direction; } set { direction = value; } } - + +#if NET_2_0 + override +#endif public bool IsNullable { - get { return true; } + get { return isNullable; } +#if NET_2_0 + set { isNullable = value; } +#endif } - + +#if NET_2_0 + override +#endif public string ParameterName { get { return name; } set { name = value; } } - + public byte Precision { get { return precision; } set { precision = value; } @@ -115,22 +153,41 @@ namespace Mono.Data.SqliteClient get { return scale; } set { scale = value; } } - + +#if NET_2_0 + override +#endif public int Size { get { return size; } set { size = value; } } +#if NET_2_0 + override +#endif public string SourceColumn { get { return source_column; } set { source_column = value; } } - + +#if NET_2_0 + public override bool SourceColumnNullMapping { + get { return sourceColumnNullMapping; } + set { sourceColumnNullMapping = value; } + } +#endif + +#if NET_2_0 + override +#endif public DataRowVersion SourceVersion { get { return row_version; } set { row_version = value; } } +#if NET_2_0 + override +#endif public object Value { get { return param_value; } set { param_value = value; } @@ -138,5 +195,13 @@ namespace Mono.Data.SqliteClient #endregion + #region methods +#if NET_2_0 + public override void ResetDbType () + { + type = originalType; + } +#endif + #endregion } }