Mercurial > pub > bltoolkit
view Source/Data/DataProvider/OdbcDataProvider.cs @ 6:11b6da379593
Исправлена странная ошибка при использовании OfType<...>().Where(...)
author | cin |
---|---|
date | Mon, 05 Dec 2016 05:50:52 +0300 |
parents | f990fcb411a9 |
children |
line wrap: on
line source
using System; using System.Data; using System.Data.Common; using System.Data.Odbc; namespace BLToolkit.Data.DataProvider { using Sql.SqlProvider; /// <summary> /// Implements access to the Data Provider for ODBC. /// </summary> /// <remarks> /// See the <see cref="DbManager.AddDataProvider(DataProviderBase)"/> method to find an example. /// </remarks> /// <seealso cref="DbManager.AddDataProvider(DataProviderBase)">AddDataManager Method</seealso> public class OdbcDataProvider : 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 OdbcConnection(); } /// <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 OdbcDataAdapter(); } /// <summary> /// Populates the specified <see cref="IDbCommand"/> object's Parameters collection with /// parameter information for the stored procedure specified in the <see cref="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 <see cref="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) { OdbcCommandBuilder.DeriveParameters((OdbcCommand)command); return true; } public override object Convert(object value, ConvertType convertType) { switch (convertType) { case ConvertType.ExceptionToErrorNumber: if (value is OdbcException) { var ex = (OdbcException)value; if (ex.Errors.Count > 0) return ex.Errors[0].NativeError; } break; } return base.Convert(value, convertType); } public override ISqlProvider CreateSqlProvider() { throw new NotSupportedException(); } /// <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(OdbcConnection); } } public const string NameString = DataProvider.ProviderName.Odbc; /// <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 NameString; } } } }