Новый триал IBProvider [3.37.0.24894]

В настоящее время идет достаточно злобная массированная ревизия и переработка относительно старого кода, связанного с управлением OLE DB свойствами.

В процессе обнаруживаются баги, дыры и костыли. Про первое и второе говорить особо смысла нет. А вот про третье — можно 🙂

Удалено свойство инициализации «free_threading«, которое влияло на значение информационного свойства «Data Source Object Threading«.

Этот костыль был добавлен для решения проблемы с диалогом настройки подключения «Data Links» — он падал при проверке подключения.

Первоначально проблема была решена с помощью свойства «free_threading» (2001 год?).

Потом были созданы специализированные страницы настройки подключения для диалога «Data Links».

Окончательно проблема была решена летом 2009, когда все компоненты провайдера начали предоставлять реализацию IMarshal. Звучит страшно, но в реальности все относительно просто — см. реализацию класса TBaseUnknown2_WithFreeThreadMarshaler в библиотеке, поставляемой с провайдером.

В 2013, когда реализовывалась поддержка асинхронной загрузки результатов запросов, пришлось досконально разобраться в этой теме.

Ну а сейчас вот, пришло время окончательно зачистить код.

Лучше поздно, чем никогда.

Leave a Comment