FIB 6.8.5
Не знаю, кто тут виноват - FIB или Firebird, но на FB 2.1.2 все было еще нормально.
Вдруг в одном месте стал ругаться на invalid BLOB ID. Происходит это при попытке проапдейтить в датасете блоб-поле, которое было null.
Причем у меня подобных мест много, но сломалось только в одном и чем оно отличается от других - хоть убей не пойму. Покопавшись, выяснил, что этому блобу при фетче присваивается какой-то левый BlobID, но честно говоря так и не понял, кто это делает - то ли FIB самодеятельностью занимается, то ли FB ему такое дает. Что интересно, происходит это только при втором открытии датасета (причем после коммита и повторного старта транзакции), что вроде как говорит в пользу косячности FIB'а, но не понятно, почему то же самое проходит без проблем под FB 2.1?
Пока победил это заплаткой типа
Код: Выделить всё
if BLOBField.IsNull then BLOBField.SetData(@NullQUID, true);
Сорри, если с веткой ошибся, но все-таки явно что-то изменилось в Firebird, фибы-то те же...