Текущее состояние.
Привет всем.
Сегодня были собраны финальные бинарники следующего выпуска провайдера (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 для набора рядов. Эта штука на несколько порядков сложнее и такие вещи следует начинать делать в начале рабочего года, а не в конце.
Релиз версии 3.16 on 28 апреля, 2013
[…] нашего «.NET провайдера для OLEDB», я вспомнил об этой штуке. Думаю, время пришло немного отдохнуть от C++ и толкнуть […]