From: Veerapuram Varadhan Date: Fri, 15 May 2009 10:47:55 +0000 (-0000) Subject: 2009-05-15 Veerapuram Varadhan X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=4ee5391d7cb8e3eb7539990e4332278ad2dd957f;p=mono.git 2009-05-15 Veerapuram Varadhan ** Fixes #424908 * OracleParameter.cs: Make sure size and sizeSet are properly updated whenever value changes. svn path=/trunk/mcs/; revision=134191 --- diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient/ChangeLog b/mcs/class/System.Data.OracleClient/System.Data.OracleClient/ChangeLog index 29b2b04e94f..ef35fe739a7 100644 --- a/mcs/class/System.Data.OracleClient/System.Data.OracleClient/ChangeLog +++ b/mcs/class/System.Data.OracleClient/System.Data.OracleClient/ChangeLog @@ -1,3 +1,9 @@ +2009-05-15 Veerapuram Varadhan + + ** Fixes #424908 + * OracleParameter.cs: Make sure size and sizeSet are properly + updated whenever value changes. + 2009-03-29 Veerapuram Varadhan * Fixes #480377 diff --git a/mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameter.cs b/mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameter.cs index 03a59ae320e..a078d1cda2d 100644 --- a/mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameter.cs +++ b/mcs/class/System.Data.OracleClient/System.Data.OracleClient/OracleParameter.cs @@ -123,9 +123,13 @@ namespace System.Data.OracleClient { this.name = name; this.value = value; + if (value != null) { + this.sizeSet = true; + this.size = InferSize (value); + } srcColumn = string.Empty; SourceVersion = DataRowVersion.Current; - InferOracleType (value); + InferOracleType (value); } public OracleParameter (string name, OracleType oracleType) @@ -150,6 +154,7 @@ namespace System.Data.OracleClient if (size < 0) throw new ArgumentException("Size must be not be negative."); this.size = size; + this.sizeSet = true; this.value = value; SourceColumnNullMapping = sourceColumnNullMapping; OracleType = oracleType; @@ -165,6 +170,7 @@ namespace System.Data.OracleClient if (size < 0) throw new ArgumentException("Size must be not be negative."); this.size = size; + this.sizeSet = true; this.value = value; this.isNullable = isNullable; this.precision = precision; @@ -353,6 +359,10 @@ namespace System.Data.OracleClient this.value = value; if (!oracleTypeSet) InferOracleType (value); + if (value != null) { + this.size = InferSize (); + this.sizeSet = true; + } } } @@ -865,6 +875,10 @@ namespace System.Data.OracleClient private void InferOracleType (object value) { + // Should we throw an exception here? + if (value is null) + return; + Type type = value.GetType (); string exception = String.Format ("The parameter data type of {0} is invalid.", type.FullName); switch (type.FullName) {