Текущее состояние.

Привет всем.

Сегодня были собраны финальные бинарники следующего выпуска провайдера (v3.13) и запущено их релизное тестирование. Была мысль после v3.12 выпустить v3.14. Но потом подумал — после всех десятков килотонн тестов, которые были выполнены в процессе разработки (и выполняются в данный момент) проявлять такое суеверие просто несерьезно :).

Основное изменение новой версии — создание нормальной поддержки для получения и установки данных колонок и параметров в виде потока символов. Выражается эта поддержка в виде двух специализированных интерфейсов (описание доступно в oledb_ibprovider.h из каталога с установкой провайдера):

  • IIBP_SequentialStream_WideChar
  • IIBP_SequentialStream_MultiByteChar

Они неплохо дополнили стандартный интерфейс ISequentialStream, который ориентирован на работу с байтами.

Можно получать/устанавливать данные в виде объектов с этими новыми интерфейсами из/в колонок и параметров с любыми типами, кроме бинарных (BYTES). Для последних следует использовать объекты с интерфейсом ISequentialStream. Поддержка распространяется в том числе и на элементы массивов. В этом плане, конвертер типов данных провайдера — штука чрезвычайно гибкая и, к слову сказать, без проблем масштабируемая.

В основном была реальная потребность в IIBP_SequentialStream_WideChar. Без него в нашем .NET провайдере для OLEDB не получилось сделать нормальную поддержку для работы с текстовыми блобами в виде потоков символов. А варварски, через загрузку всего блоба, как это сделано в стандартном OLEDB.NET делать не хотелось.

Немножко цинизма — и как в Firebird .NET провайдере, тоже.

Поэтому пришлось отложить.

Ну а IIBP_SequentialStream_MultiByteChar был добавлен для симметрии. По аналогии с WSTR/STR. Как говорится, если уж делать, то делать хорошо.


Правда прямо сейчас это в .NET провайдер добавляться не будет. В ближайших планах реализовать интерфейс IDBAsynchStatus для набора рядов. Эта штука на несколько порядков сложнее и такие вещи следует начинать делать в начале рабочего года, а не в конце.

One Comment

Релиз версии 3.16  on 28 апреля, 2013

[…] нашего «.NET провайдера для OLEDB», я вспомнил об этой штуке. Думаю, время пришло немного отдохнуть от C++ и толкнуть […]

Leave a Comment