+2008-05-29 Veerapuram Varadhan <vvaradhan@novell.com>
+
+ ** Fixes Bug#382635
+ * TdsMetaParameter.cs (set_Value): Truncate the value to thespecified size.
+
2007-07-24 Nagappan A <anagappan@novell.com>
* TdsMetaParameter.cs (Prepare): Fixes Large strings truncated
public object Value {
get { return value; }
- set { this.value = value; }
+ set {
+ if (value == DBNull.Value || value == null) {
+ this.value = value;
+ return;
+ }
+
+ // if size is set, truncate the value to specified size
+ if (value.GetType () == typeof (string)) {
+ int len = ((string)value).Length;
+
+ if ((TypeName == "nvarchar" ||
+ TypeName == "nchar")
+ && isSizeSet && size > 0 && len > size) {
+ this.value = ((string)value).Substring (0, size);
+ } else {
+ this.value = value;
+ }
+ } else if (value.GetType () == typeof (byte[])) {
+ int len = ((byte[])value).Length;
+
+ if (isSizeSet && size > 0 && len > size ) {
+ byte [] tmpVal = new byte [size];
+ Array.Copy (((byte[]) value), ((byte[]) this.value), size);
+ this.value = tmpVal;
+ } else {
+ this.value = value;
+ }
+ } else {
+ this.value = value;
+ }
+ }
}
public byte Precision {