Предыстория. Существует приложение, созданное для использования Crystal 11. Сам rpt-файл довольно прост: основан на одном представлении базы данных Oracle, которое включает два столбца blob (один содержит фотографию, а другой - изображение подписи). До этого у нас также была более старая версия того же приложения, использующая Crystal 8. Насколько я помню, когда файл * .rpt был преобразован, ничего особенного не было сделано. Он по-прежнему использует одно и то же представление базы данных Oracle.
Мой администратор базы данных, используя v $ sql, заметил, что когда мы запускаем отчет, он теперь запрашивает представление базы данных ТРИ РАЗ. До этого он отправлял только ОДИН запрос. Эти ДВА дополнительных запроса выполняются в том же представлении, что и первый, но без предложения where и ищут только соответствующие отдельные столбцы больших двоичных объектов.
Это было НЕ то, как это было, когда мы использовали Crystal 8. Он подтвердил это.
Crystal 8 запрашивает представление только один раз и получает все нужные столбцы.
Crystal 11 также отправляет тот же запрос, который также включает столбцы BLOB-объектов.
Crystal 11 не нужно отправлять эти два дополнительных запроса.
Никаких формул в rpt-файле Crystal 11 не добавлено. Обе версии этого rpt-файла для Crystal 8 и 11 имеют только формулу выбора уровня записи. Я искал каждый из этих объектов blob в макете дизайна, чтобы убедиться, что он получает их из одного и того же представления и т. Д.
Играя с ним дальше, я сделал следующее: * Я избавился от всех объектов базы данных в макете дизайна. * Я добавил обратно два текстовых столбца (столбцы с большими двоичными объектами не использовались) * Администратор базы данных подтвердил, что выполнялся только ОДИН запрос к представлению.
- Затем я снова добавил фото.
DBA сообщает, что отображаются ДВА запроса. Предыдущий упомянутый, и один для фото-блоба.
Затем я добавил ту же самую фотографию, чтобы на экране была дубликат фотографии.
Администратор базы данных говорит, что изменений нет. По-прежнему показывает только ДВА запроса.
Затем я добавил ДРУГОЙ blob для изображения подписи.
- Администратор базы данных говорит, что теперь он видит ТРИ запроса.
Что здесь происходит!?
Почему Crystal 8 так себя не вел? Является ли это известной ошибкой и как ее обойти, не переделывая весь отчет по-другому?
Дополнительная информация: я проверил, что файл rpt ссылается только на одно представление базы данных.
Я проверил, что есть только одна формула. Это существует только на уровне выбора записи. Он не содержит ссылок на фото-блоб.
Одна вещь, которая мне показалась интересной, была в списке «Поля отчета» в редакторе формул. Я вижу все поля, используемые в дизайнере / формуле отчета, за исключением Фото и Подпись, которые там не перечислены. Это заставляет меня думать, что Crystal обрабатывает их отдельно.
Подотчеты не используются.