Mercurial > pub > bltoolkit
diff Source/Data/DataProvider/SqlCeDataProvider.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Source/Data/DataProvider/SqlCeDataProvider.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,120 @@ +using System; +using System.Data; +using System.Data.Common; + +// System.Data.SqlServerCe.dll must be referenced. +// http://www.microsoft.com/sql/editions/compact/default.mspx +// +using System.Data.SqlServerCe; + +namespace BLToolkit.Data.DataProvider +{ + using Sql.SqlProvider; + + /// <summary> + /// Implements access to the Data Provider for Microsoft SQL Server 2005 Everywhere Edition + /// </summary> + /// <remarks> + /// See the <see cref="DbManager.AddDataProvider(DataProviderBase)"/> method to find an example. + /// </remarks> + /// <seealso cref="DbManager.AddDataProvider(DataProviderBase)">AddDataManager Method</seealso> + public sealed class SqlCeDataProvider: DataProviderBase + { + /// <summary> + /// Creates the database connection object. + /// </summary> + /// <remarks> + /// See the <see cref="DbManager.AddDataProvider(DataProviderBase)"/> method to find an example. + /// </remarks> + /// <seealso cref="DbManager.AddDataProvider(DataProviderBase)">AddDataManager Method</seealso> + /// <returns>The database connection object.</returns> + public override IDbConnection CreateConnectionObject() + { + return new SqlCeConnection(); + } + + /// <summary> + /// Creates the data adapter object. + /// </summary> + /// <remarks> + /// See the <see cref="DbManager.AddDataProvider(DataProviderBase)"/> method to find an example. + /// </remarks> + /// <seealso cref="DbManager.AddDataProvider(DataProviderBase)">AddDataManager Method</seealso> + /// <returns>A data adapter object.</returns> + public override DbDataAdapter CreateDataAdapterObject() + { + return new SqlCeDataAdapter(); + } + + /// <summary> + /// Populates the specified IDbCommand object's Parameters collection with + /// parameter information for the stored procedure specified in the IDbCommand. + /// </summary> + /// <remarks> + /// See the <see cref="DbManager.AddDataProvider(DataProviderBase)"/> method to find an example. + /// </remarks> + /// <seealso cref="DbManager.AddDataProvider(DataProviderBase)">AddDataManager Method</seealso> + /// <param name="command">The IDbCommand referencing the stored procedure for which the parameter information is to be derived. The derived parameters will be populated into the Parameters of this command.</param> + public override bool DeriveParameters(IDbCommand command) + { + // SqlCeCommandBuilder does not implement DeriveParameters. + // This is not surprising, since SQL/e has no support for stored procs. + // + return false; + } + + public override object Convert(object value, ConvertType convertType) + { + switch (convertType) + { + case ConvertType.ExceptionToErrorNumber: + if (value is SqlCeException) + return ((SqlCeException)value).NativeError; + break; + } + + return SqlProvider.Convert(value, convertType); + } + + /// <summary> + /// Returns connection type. + /// </summary> + /// <remarks> + /// See the <see cref="DbManager.AddDataProvider(DataProviderBase)"/> method to find an example. + /// </remarks> + /// <seealso cref="DbManager.AddDataProvider(DataProviderBase)">AddDataManager Method</seealso> + /// <value>An instance of the <see cref="Type"/> class.</value> + public override Type ConnectionType + { + get { return typeof(SqlCeConnection); } + } + + /// <summary> + /// Returns the data provider name. + /// </summary> + /// <remarks> + /// See the <see cref="DbManager.AddDataProvider(DataProviderBase)"/> method to find an example. + /// </remarks> + /// <seealso cref="DbManager.AddDataProvider(DataProviderBase)">AddDataProvider Method</seealso> + /// <value>Data provider name.</value> + public override string Name + { + get { return DataProvider.ProviderName.SqlCe; } + } + + public override int MaxBatchSize + { + get { return 0; } + } + + public override ISqlProvider CreateSqlProvider() + { + return new SqlCeSqlProvider(); + } + + public override DbType GetParameterDbType(DbType dbType) + { + return dbType == DbType.DateTime2 ? DbType.DateTime : dbType; + } + } +}