public override void Set(int recordNo, object value)
{
if (DBNull.Value == value)
{
_values[recordNo] = _nullValue;
SetNullBit(recordNo, true);
}
else if (null == value)
{
if (_isValueType)
{
throw ExceptionBuilder.StorageSetFailed();
}
else
{
_values[recordNo] = _nullValue;
SetNullBit(recordNo, true);
}
}
else if (!_dataType.IsInstanceOfType(value))
{
throw ExceptionBuilder.StorageSetFailed();
}
else
{
// do not clone the value
_values[recordNo] = value;
SetNullBit(recordNo, false);
}
}