Commit 40282d19 authored by Marc Gravell's avatar Marc Gravell

Precision and scale controls (fixes Issue #261)

parent 8ab859c7
...@@ -4457,6 +4457,9 @@ partial class ParamInfo ...@@ -4457,6 +4457,9 @@ partial class ParamInfo
internal Action<object, DynamicParameters> OutputCallback { get; set; } internal Action<object, DynamicParameters> OutputCallback { get; set; }
internal object OutputTarget { get; set; } internal object OutputTarget { get; set; }
internal bool CameFromTemplate { get; set; } internal bool CameFromTemplate { get; set; }
public byte? Precision { get; set; }
public byte? Scale { get; set; }
} }
/// <summary> /// <summary>
...@@ -4529,20 +4532,30 @@ public void AddDynamicParams(object param) ...@@ -4529,20 +4532,30 @@ public void AddDynamicParams(object param)
/// <summary> /// <summary>
/// Add a parameter to this dynamic parameter list /// Add a parameter to this dynamic parameter list
/// </summary> /// </summary>
/// <param name="name"></param> public void Add(string name, object value, DbType? dbType, ParameterDirection? direction, int? size)
/// <param name="value"></param> {
/// <param name="dbType"></param> parameters[Clean(name)] = new ParamInfo() {
/// <param name="direction"></param> Name = name, Value = value, ParameterDirection = direction ?? ParameterDirection.Input,
/// <param name="size"></param> DbType = dbType, Size = size
};
}
/// <summary>
/// Add a parameter to this dynamic parameter list
/// </summary>
public void Add( public void Add(
#if CSHARP30 #if CSHARP30
string name, object value, DbType? dbType, ParameterDirection? direction, int? size string name, object value, DbType? dbType, ParameterDirection? direction, int? size, byte? precision, byte? scale
#else #else
string name, object value = null, DbType? dbType = null, ParameterDirection? direction = null, int? size = null string name, object value = null, DbType? dbType = null, ParameterDirection? direction = null, int? size = null, byte? precision = null, byte? scale = null
#endif #endif
) )
{ {
parameters[Clean(name)] = new ParamInfo() { Name = name, Value = value, ParameterDirection = direction ?? ParameterDirection.Input, DbType = dbType, Size = size }; parameters[Clean(name)] = new ParamInfo() {
Name = name, Value = value, ParameterDirection = direction ?? ParameterDirection.Input,
DbType = dbType, Size = size,
Precision = precision, Scale = scale
};
} }
static string Clean(string name) static string Clean(string name)
...@@ -4686,7 +4699,9 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity) ...@@ -4686,7 +4699,9 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity)
if (param.Size != null) if (param.Size != null)
{ {
p.Size = param.Size.Value; p.Size = param.Size.Value;
} }
if (param.Precision != null) p.Precision = param.Precision.Value;
if (param.Scale != null) p.Scale = param.Scale.Value;
} }
else else
{ {
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment