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]