Hello Alexey,

Tuesday, July 25, 2006, 1:27:02 PM, you wrote:
AP> Блин, ну может хватит меня мучать ? :-E````
Надеюся канделябером не отхвачу
Все хватить болше не буду :))))
    /// <summary>
    /// Основной интерфейс доступа к данным. Каждая реализация данного 
коммонента 
    /// обрабатывает соответсвующий вид источника данных, например БД Oracle, 
БД Interbase и т.д.
    /// </summary>      
    public interface IDataProvider : IDisposable
    {
        /// <summary>
        ///  Инициализация соединения
        /// </summary>
        /// <param name="aProviderParams"> Параметры соединения </param>
        void Init(IDictionary aProviderParams);

        #region Работа с провадером как с БД

        /// <summary>
        /// Текущее открытое соедиение
        /// </summary>
        string ConnectionString { get; }

        /// <summary>
        /// Провайдер содуржит открытую транзакцию
        /// </summary>
        /// <returns>Истина если транзакция открыта</returns>
        bool InTransaction();

        /// <summary>
        /// Начать транзакцию  
        /// </summary>
        void StartTransaction();

        /// <summary>
        /// Подтвердить транзакцию
        /// </summary>
        void CommitTransaction();

        /// <summary>
        /// Отменить транзакцию
        /// </summary>
        void RoolbackTransaction();

        /// <summary>
        /// Открыть соединение
        /// </summary>
        void Open();
        /// <summary>
        /// Зкарыть соединение
        /// </summary>
        void Close();

        #endregion

        /// <summary>
        /// по имени базового асбстрактного DAL-компонента возвращает его 
реализацию
        /// для соответсвующей data-платформы
        /// </summary>
        /// <param name="a_DALType"></param>
        /// <returns></returns>
        IDAL ProvideDAL(Type a_DALType);

        /// <summary>
        /// по указанному интерфейсу <typeparamref name="TDAL"/> возвращает его 
имплементацию
        /// </summary>
        /// <typeparam name="TDAL"></typeparam>
        /// <returns></returns>
        TDAL ProvideDAL<TDAL> () where TDAL:IDAL;

    }

    /// <summary>
    /// Расширение DataProvider - работа через ADO.NET. Наследуется от <see 
cref="IDataProvider"/>
    /// </summary>
    public interface IADODataProvider : IDataProvider
    {
        /// <summary>
        /// Прямое получение Connection
        /// </summary>
        IDbConnection GetConnection();

        /// <summary>
        /// Возвращает текущую транзакцию
        /// </summary>
        IDbTransaction GetTransaction();

        /// <summary>
        /// Выполняет SELECT-команду и возвращает DataTable
        /// </summary>
        /// <param name="a_SelectExpression">Запрос</param>
        /// <param name="a_DataTable">Таблица для сохранения результата</param>
        /// <returns></returns>
        void ExecuteSelect(string a_SelectExpression, DataTable a_DataTable);

        /// <summary>
        /// Выполняет SELECT-команду с параметрами
        /// и возвращает DataTable
        /// </summary>
        /// <param name="a_SelectExpression"> Запрос </param>
        /// <param name="a_DataTable">Таблица для сохранения результата</param>
        /// <param name="a_Params"> Колекция пар имя_параметра:значение</param>
        /// <returns></returns>
        void ExecuteSelect(string a_SelectExpression, DataTable a_DataTable, 
IDictionary a_Params);
        
        /// <summary>
        /// Выполняет SELECT-команду с параметрами и заполняет датасет
        /// </summary>
        /// <param name="a_SelectExpression"> Запрос </param>
        /// <param name="a_DataSet">DataSet для заполнения</param>
        /// <param name="a_TableName">Имя таблицы в DataSet</param>
        /// <param name="a_Params"> Колекция пар имя_параметра:значение</param>
        /// <param name="a_StartRow">Начальная строка заполнения</param>
        /// <param name="a_DeltaRow">Количество строк для заполнения</param>
        void ExecuteSelect(string a_SelectExpression, DataSet a_DataSet, string 
a_TableName, IDictionary a_Params, int a_StartRow, int a_DeltaRow);
        
        /// <summary>
        /// Выполняет Select команду и запоняет ее результатами датасет
        /// </summary>
        /// <param name="a_SelectExpression"> Запрос </param>
        /// <param name="a_DataSet">DataSet для заполнения</param>
        /// <param name="a_TableName">Имя таблицы в DataSet</param>
        void ExecuteSelect(string a_SelectExpression, DataSet a_DataSet, string 
a_TableName);
        
        /// <summary>
        /// Выполняет обновление таблицы в БД (выполняет INSERT, UPDATE и 
DELETE)
        /// </summary>
        /// <param name="a_DataTable">Таблица, изменения из которой попадут в 
БД</param>
        /// <param name="a_TableName">Наименование таблицы в БД</param>
        void ExecuteUpdate(DataTable a_DataTable, string a_TableName);
 
        /// <summary>
        /// Выполняет команду не возвращающую результатов
        /// возврат количество обработанных записей
        /// </summary>
        /// <param name="a_SQLStatement">SQL команда</param>
        int ExecuteCommand(string a_SQLStatement);

        /// <summary>
        /// Выполняет команду не возвращающую результатов
        /// возврат количество обработанных записей
        /// </summary>
        /// <param name="a_SQLStatement">SQL команда</param>
        /// <param name="a_Params">Список параметров</param>
        int ExecuteCommand(string a_SQLStatement, IDictionary a_Params);

        /// <summary>
        /// Выполняет команду которая как правило возвращает одну запись 
        /// и возвращает первое поле этой записи
        /// </summary>
        /// <param name="a_SQLStatement">SQL комманда</param>
        /// <returns></returns>
        object ExecuteScalar(string a_SQLStatement);
        
        /// <summary>
        /// Выполняет команду которая как правило возвращает одну запись 
        /// и возвращает первое поле этой записи
        /// Варисант с параметрами
        /// </summary>
        /// <param name="a_SQLStatement">SQL комманда</param>
        /// <param name="a_Params"> Колекция пар имя_параметра:значение</param> 
        /// <returns></returns>
        object ExecuteScalar(string a_SQLStatement, IDictionary a_Params);

        /// <summary>
        /// Выполнить хранимую процедуру
        /// </summary>
        /// <param name="a_StoredProcedureName">Имя процедуры</param>
        /// <param name="a_Params">Параметры</param>
        /// <returns></returns>
        object ExecuteStoredProcedure(string a_StoredProcedureName, IDictionary 
a_Params);
    }
    
    /// <summary>
    /// Реализация шаблонного Data-провайдера для ADO 2.0
    /// реализует интерфейсы
    /// IADODataProvider - ADO провайдер универсальный
    /// IConnection информация о соединеннии (пока не реализовано)
    /// <see cref="IADODataProvider"/>
    /// <see cref="IConnection"/>
    /// </summary>
    //public class GenericADODataProvider : DataProviderBase, IADODataProvider, 
IConnection
    public abstract class GenericADODataProvider<TDbConnection, TDbTransaction, 
TDbCommand, TDbDataAdapter> : DataProviderBase, IADODataProvider
        where TDbConnection : DbConnection, new()
        where TDbTransaction : DbTransaction
        where TDbCommand : DbCommand, new()
        where TDbDataAdapter : DbDataAdapter, IDisposable, new()
    { .....


    дальше сожрано


  Тема Дня: Heavy Metal - лyчший дpyг, этo знaют вce вoкpyг.
  До не скорой встречи в аду,
 Max                            mailto:[EMAIL PROTECTED]

Ответить