init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
148
Sda.DataProvider/Wrappers/MSSQL/MSSQLCommandParameterWrapper.cs
Normal file
148
Sda.DataProvider/Wrappers/MSSQL/MSSQLCommandParameterWrapper.cs
Normal file
|
@ -0,0 +1,148 @@
|
|||
using System;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Globalization;
|
||||
using SDA.DataProvider.Core;
|
||||
|
||||
namespace SDA.DataProvider.MSSQLWrappers
|
||||
{
|
||||
class MSSQLCommandParameterWrapper : SDACommandParameterWrapper
|
||||
{
|
||||
internal SqlParameter Parameter;
|
||||
|
||||
internal MSSQLCommandParameterWrapper(SqlParameter parameter)
|
||||
{
|
||||
Parameter = parameter;
|
||||
}
|
||||
|
||||
protected override IDbDataParameter WrappedParameter
|
||||
{
|
||||
get
|
||||
{
|
||||
return Parameter;
|
||||
}
|
||||
}
|
||||
|
||||
public override object Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return Parameter.Value;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value is bool boolean)
|
||||
{
|
||||
Parameter.Value = boolean ? 'T' : 'F';
|
||||
}
|
||||
else
|
||||
{
|
||||
Parameter.Value = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override SDADBType DBType
|
||||
{
|
||||
get
|
||||
{
|
||||
return MSSQLParameterTypeConverter.ConvertSqlDbTypeToSDADBType(Parameter.SqlDbType);
|
||||
}
|
||||
set
|
||||
{
|
||||
Parameter.SqlDbType = MSSQLParameterTypeConverter.ConvertSDADBTypeToSqlDbType(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MSSQLParameterTypeConverter
|
||||
{
|
||||
public static SqlDbType ConvertSDADBTypeToSqlDbType(SDADBType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case SDADBType.Int:
|
||||
return SqlDbType.Int;
|
||||
case SDADBType.String:
|
||||
return SqlDbType.NVarChar;
|
||||
case SDADBType.Binary:
|
||||
return SqlDbType.Image;
|
||||
case SDADBType.Char:
|
||||
return SqlDbType.NChar;
|
||||
case SDADBType.DateTime:
|
||||
return SqlDbType.DateTime;
|
||||
case SDADBType.Double:
|
||||
return SqlDbType.Float;
|
||||
case SDADBType.Boolean:
|
||||
return SqlDbType.Char;
|
||||
case SDADBType.LongString:
|
||||
return SqlDbType.NText;
|
||||
case SDADBType.LongInt:
|
||||
return SqlDbType.BigInt;
|
||||
case SDADBType.NonUnicodeString:
|
||||
return SqlDbType.VarChar;
|
||||
case SDADBType.Guid:
|
||||
return SqlDbType.UniqueIdentifier;
|
||||
default:
|
||||
throw new NotImplementedException(type.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public static SDADBType ConvertSqlDbTypeToSDADBType(SqlDbType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case SqlDbType.BigInt:
|
||||
return SDADBType.LongInt;
|
||||
case SqlDbType.Binary:
|
||||
return SDADBType.Binary;
|
||||
case SqlDbType.Bit:
|
||||
return SDADBType.Boolean;
|
||||
case SqlDbType.Char:
|
||||
return SDADBType.Char;
|
||||
case SqlDbType.DateTime:
|
||||
return SDADBType.DateTime;
|
||||
case SqlDbType.Decimal:
|
||||
throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Conversion from '{0}' is not supported.", type));
|
||||
case SqlDbType.Float:
|
||||
return SDADBType.Double;
|
||||
case SqlDbType.Image:
|
||||
return SDADBType.Binary;
|
||||
case SqlDbType.Int:
|
||||
return SDADBType.Int;
|
||||
case SqlDbType.Money:
|
||||
throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Conversion from '{0}' is not supported.", type));
|
||||
case SqlDbType.NChar:
|
||||
return SDADBType.Char;
|
||||
case SqlDbType.NText:
|
||||
return SDADBType.LongString;
|
||||
case SqlDbType.NVarChar:
|
||||
return SDADBType.String;
|
||||
case SqlDbType.Real:
|
||||
return SDADBType.Double;
|
||||
case SqlDbType.SmallDateTime:
|
||||
return SDADBType.DateTime;
|
||||
case SqlDbType.SmallInt:
|
||||
return SDADBType.Int;
|
||||
case SqlDbType.SmallMoney:
|
||||
throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Conversion from '{0}' is not supported.", type));
|
||||
case SqlDbType.Text:
|
||||
return SDADBType.LongString;
|
||||
case SqlDbType.Timestamp:
|
||||
throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Conversion from '{0}' is not supported.", type));
|
||||
case SqlDbType.TinyInt:
|
||||
throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Conversion from '{0}' is not supported.", type));
|
||||
case SqlDbType.UniqueIdentifier:
|
||||
return SDADBType.Guid;
|
||||
case SqlDbType.VarBinary:
|
||||
throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Conversion from '{0}' is not supported.", type));
|
||||
case SqlDbType.VarChar:
|
||||
return SDADBType.NonUnicodeString;
|
||||
case SqlDbType.Variant:
|
||||
throw new NotSupportedException(string.Format(CultureInfo.InvariantCulture, "Conversion from '{0}' is not supported.", type));
|
||||
default:
|
||||
throw new NotImplementedException(type.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue