Страницы

среда, 8 октября 2008 г.

текучка 2. Бывают Select-ы, которые нужно выполнять в рамках пишущей транзакции.

Обнаружилась проблема в “успешно переведённым” с BDE на FIBPlus проекте. Переводил я тогда так:

  1. На главном Datamodule я создал 2 транзакции, trMainRead(read-only) и trMainWrite(read/write).
  2. У всех FIBDataset-ов выставил читающей транзакцией trMainRead, а пишущей trMainWrite, а также свойства AutoStartTransaction и AutoCommit.

Не было печали, пока не выяснилось, что для отображения некоторых отчётов используются Select-ы из хранимых процедур, а процедуры эти, в свою очередь, могут сохранять промежуточные расчёты в других таблицах. И эти отчёты начинают ругаться, когда их пытаются открыть в read-only транзакции. Теперь надо как-то искать места где происходит select из процедур, и добавлять туда отдельную пишущую транзакцию.

500 хранимых процедур, 71 форма, 37 тыщ строк кода. Проект старый и чужой и большая часть кода мне незнакома.

Вот бы как-нибудь, этот процесс автоматизировать.

p.s. Решение проблемы с Select-ами.

Комментариев нет:

Отправить комментарий