Доброго времени суток!
Andrew Holubovski wrote:
На DelphiPlus опубликована 1-я часть статьи Владимира Сергеева "Firebird 2.0
на полную катушку" - "Создание перекрестных запросов (Cross-Tab)".
Не буду ругать автора за
Один знакомый автора, тоже занимающийся разработкой СУБД на основе InterBase,
нашел следующий выход: в рамках одной транзакции создавалась хранимая процедура,
делалась выборка данных из хранимой процедуры, строился отчет, а затем транзакции
делался откат. В результате хранимай процедура "не сохранялась". Кстати, его система
работает уже несколько лет, объем данных - около 1Гб. (Эй, кто там говорил, что в InterBase
нельзя играться метаданными "на лету" ?).
поскольку сам этим никогда не занимался и не помню, в чем там грабли.
На мой непросвещенный взгляд автор заслуживает порицания за откат
читающей транзакции
if trRead.InTransaction then trRead.Rollback;
и прежде всего за фрагмент кода
if not trRead.InTransaction then
trRead.StartTransaction;
try
IBQuery.Open;
except
end;
В FibPlus вроде бы транзакции по умолчанию стартуют с read_committed -
что несколько не подходит для формирования отчетности.
Несколько непонятно, для чего в двухмегабайтный source.zip обязательно
было включать мегабайтную БД (не backup!) вместе со скриптом для ее
формирования
С уважением, Евгений.