Поддержка параллельных транзакций в ADO.NET провайдере.
Привет всем.
На сайте IBProvider-a доступен для скачивания инсталлятор с новыми сборками .NET провайдера — 1.0.0.1946.
Основным нововведением является возможность создания параллельных транзакций в рамках одного подключения к базе данных. Пример.
После достаточно продолжительного размышления по поводу реализации этой функциональности, я пришел к выводу что надо просто создавать раздельные объекты OleDbConnection привязанные к одному COM-объекту подключения (OLEDB DataSource), но разным COM-объектам сессий (это OLEDB компоненты для управления транзакциями). По аналогии с решением для классического ADODB.
С этими «клонами» подключения можно без проблем работать в разных потоках — IBProvider обеспечивает всю необходимую синхронизацию.
Другие изменения.
1. Добавлен класс OleDbEnumerator. С его помощью можно перечислить OLEDB провайдеры зарегистрированные в системе.
2. Добавлен перегруженный метод OleDbConnection.GetSchema(string, object[]).
3. Переработана реализация OleDbConnectionStringBuilder. Это был самый первый класс который я реализовал в рамках .NET провайдера 🙂