+2008-02-26 Veerapuram Varadhan <vvaradhan@novell.com>
+
+ ** Fixes BNC#364432.
+ * OdbcParameter.cs: (Bind): Set StrLen parameter of
+ SQLBindParameter to reflect NullData in case of DBNull.
+ (CopyValue): If Value is DBNull.Value, just don't try any
+ heroics.
+
2008-02-25 Veerapuram Varadhan <vvaradhan@novell.com>
** Fixes BNC#364426.
OdbcInputOutputDirection paramdir = libodbc.ConvertParameterDirection(this.Direction);
_cbLengthInd.EnsureAlloc (Marshal.SizeOf (typeof (int)));
- Marshal.WriteInt32 (_cbLengthInd, GetNativeSize ());
+ Marshal.WriteInt32 (_cbLengthInd, Value == DBNull.Value ? (int)OdbcLengthIndicator.NullData : GetNativeSize ());
AllocateBuffer ();
ret = libodbc.SQLBindParameter(hstmt, (ushort) ParamNum, (short) paramdir,
- _typeMap.NativeType, _typeMap.SqlType, Convert.ToUInt32(Size),
+ _typeMap.NativeType, _typeMap.SqlType,
+ Convert.ToUInt32(Size),
0, (IntPtr) _nativeBuffer, 0, _cbLengthInd);
// Check for error condition
if (_nativeBuffer.Handle == IntPtr.Zero)
return;
+ if (Value == DBNull.Value)
+ return;
+
DateTime dt;
TextInfo ti = CultureInfo.InvariantCulture.TextInfo;
Encoding enc = Encoding.GetEncoding (ti.ANSICodePage);