Обнаружилась проблема в “успешно переведённым” с BDE на FIBPlus проекте. Переводил я тогда так:
- На главном Datamodule я создал 2 транзакции, trMainRead(read-only) и trMainWrite(read/write).
- У всех FIBDataset-ов выставил читающей транзакцией trMainRead, а пишущей trMainWrite, а также свойства AutoStartTransaction и AutoCommit.
Не было печали, пока не выяснилось, что для отображения некоторых отчётов используются Select-ы из хранимых процедур, а процедуры эти, в свою очередь, могут сохранять промежуточные расчёты в других таблицах. И эти отчёты начинают ругаться, когда их пытаются открыть в read-only транзакции. Теперь надо как-то искать места где происходит select из процедур, и добавлять туда отдельную пишущую транзакцию.
500 хранимых процедур, 71 форма, 37 тыщ строк кода. Проект старый и чужой и большая часть кода мне незнакома.
Вот бы как-нибудь, этот процесс автоматизировать.
Комментариев нет:
Отправить комментарий