Проблема с ADO

отредактировано 02:51 Раздел: FastReport 3.0
Для ознакомления скачал с сайта trial версию Fast Report 3 для Delphi 5.
Установил.
Все замечательно.
Пробую тестовый проект.
Содал форму
Создал модуль данных (не автосоздаваемый)
На модуль данных бросил компонент TAdoStoreProc
На форму бросил компоненты TfrxDBDataset и TfrxReport
Связал свойство frxDBDataset.DataSet с AdoStoreProc
Настроил свойства AdoStoreProc.ConnectionString, AdoStoreProc.ProcedureName и
AdoStoreProc.Parameters и AdoStoreProc.Active
Открыл дизайнер отчета
нажал кнопку "Новый отчет",
разрешить использование frxDBDataset
подключил Бэнд "Данные 1 уровня" к frxDBDataset
создал несколько объектов "Текст" с помощью drag&drop
Нажал кнопку предварительного просмотра и получил отчет.
Все ОК.
Перехожу к коду. По условиям задачи свойство компонента AdoStoreProc.ProcedureName должно управляться из внешней программы.
При этом ни количество AdoStoreProc.Parameters ни их имена менятся не могут.
Сделал для этого всю обвязку.

После этого запустил проект.
На форме TfrxDBDataset и TfrxReport есть две кнопки
1. Connect
Подсоединяет проект к БД.
2. GetReport
2.1. Закрывает пр-ру AdoStoreProc
2.2. Устанавливает свойство AdoStoreProc.ConnectionString из диалога Connect
2.3. Устанавливает свойство AdoStoreProc.ProcedureName в зависимости от
внешних условий (допустим из Ini)
2.4. Очищает значения AdoStoreProc.Parameters
2.5. Заполняет значения AdoStoreProc.Parameters в зависимости от
внешних условий (допустим из Ini)
2.6. Открывает процедуру
2.7. Если вернулся не пустой рекорсет то показывает отчет.
После второго шага получаю пустой отчет.

100 % имена полей в этой процедуре такие же как и в дизайнере.
100 % процедура возвращает данные.

В чем может быть проблема?

Комментарии

  • отредактировано 02:51
    написал:
    2. GetReport
    2.1. Закрывает пр-ру AdoStoreProc

    А что такое ГетРепорт и почему после него закрытие процедуры происходит? Я, например, делаю так: сначала создаю АдоСторедПроцы, фрхДбДатаСеты, открываю наборы данных (для некоторых отчетов 5 АдоСторедПроц), а уже потом загружаю отчет из Блоба в сервере, все работает нормально...
  • отредактировано 02:51
    vadson6666 написал:
    vadson6666 написал:
    2. GetReport
    2.1. Закрывает пр-ру AdoStoreProc

    А что такое ГетРепорт и почему после него закрытие процедуры происходит? Я, например, делаю так: сначала создаю АдоСторедПроцы, фрхДбДатаСеты, открываю наборы данных (для некоторых отчетов 5 АдоСторедПроц), а уже потом загружаю отчет из Блоба в сервере, все работает нормально...
    Я описываю попытку создания отчетной системы в DLL.
    Разберем более побробно:
    Допустим у нас есть большая система, состоящая из нескольких модулей, один из которых занимается выводом отчетов.
    Отлаживать такую DLL не очень удобно. По-этому сначала делается ее прототип в качетве отдельной программы, куда включается все функциональность, котроя потом нужна будет для DLL.
    Большая система может коннектиться к нескольким БД. По-этому перед открытием любой процедуры, лежашей вне модуля, который занимается коннектом к БД, надо ее закрыть. Если этого не сделать то при попытке измения каких либо параметров мы получим viol/ Стало быть закрываем даже если она не открыта. Затем проставляем значения свойств и открываем процедуру. Т. е. получается что на весь набор отчетов есть один компонент AdoStoreProc? который преддоставляет данные для всех отчетов.

    Вопрос остался открытым.

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

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.