b>j)΄!Pԫ&;"kB޶}pSVT(wę!j x;-m@JnQ+պכ7MajfJͱ4jѲ撆RxZMz7vIW/dٞТזcZM~ji ߒsQzԠDW3Den"M+/B:-uIJ7j委9p='mANޭ=/B:-n&nUfqxZM~c Ϲ+,&ᾺܢF[(1*" ϒ"Jԧ<;b" "jܢF[x ,!q қ*]/؝27SMcs"ޭDQ/应ܢF_! :s" 7`F+SVTn"IJnQ/应B 4 wD"IJ׭-`S9DrjiEJ߅gJ应矁[xZM~n"IB؃!'Тѕ+(mIKʭ/|ϐܢF[xZMzG %嬩/c[[ Новый триал IBProvider [сборка 17875]

Новый триал IBProvider [сборка 17875]

Всем привет.

Выложен новый триал OLE DB провайдера, в который внесены следующие исправления и изменения, связанные с массивами:

1. Исправлено формирование многомерных массивов. Внезапно обнаружилось, что IBProvider формирует описания размерностей не в том порядке. В результате сервер и провайдер по-разному вычисляют расположения элементов.

2. После очередного размышления над багой Firebird CORE-1588 (у InterBase аналогичная болезнь), пришел к выводу что на текущий момент самым правильным решением будет обрабатывать VARCHAR-массивы как CHAR-массивы. Это устранило костыли в коде IBProvider-а и принесло в мою душу гармонию и умиротворенность.

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

На уровне сервера эта проблема решается определением двух новых API-функций для записи и чтения массивов, которые будут правильно обрабатывать SDL-описание. Как выяснилось — в саму базу VARCHAR-массивы пишутся правильно. Надо будет, в качестве эксперимента, попробовать реализовать это в собственном клоне FB.


Вот такие вот дела. Все это побочный эффект реализации и тестирования сохранения массивов через собственный низкоуровневый INET-клиент для Firebird.

Релиз IBProvider-а (3.25) будет после реализации чтения массивов в этом низкоуровневом клиенте. Сегодня планирую начать тупить возиться в этом направлении.

Leave a Comment