Не могу хранимку использовать в запросе

отредактировано 07:42 Раздел: FastReport 3.0
А кто-нибудь использовал параметры и хранимки в FastReport одновременно?
Я вот в AdoQuery, который внутри репорта написал
exec GetTotal
Select * From TotalRep
Where Convert(varchar(10),OpTime,104)=:EuroDate

по отдельности работает, а если как процитировано, то выдает

<span style='color:red'>Operation is not allowed when the object is closed</span>

В чем дело-то?
PS параметр - поле мастер-таблицы, Ms Sql Server 2000

Комментарии

  • LexLex
    отредактировано December 2005
    сделал простенький проект:

    1. StoredProc tmpProc создает и заполняет таблицу aaa(i int identity)
    2. ADOQuery1.Sql =
      exec tmpProc
     select * 
       from aaa
     where I=:I
    
    3. скрипте отчета
    begin
      ADOQuery1.Active := False;
      ADOQuery1.Params[0].Value := 1;
      ADOQuery1.Active := True;
    end.
    
    все работает.
  • отредактировано 07:42
    Я все квери, подключение к базе и прочее держу в самом отчете, так удобнее рассылать отчеты
    Но вот в одном запросе в FastReport использовать и ехес и запрос с параметром - не выходит.
  • отредактировано 07:42
    Вопрос похожий,поэтому пишу тут:

    есть хранимая процедура, у которой два входных параметра (date_from и date_to).
    в фасте делаю диалог с двумя полями даты
    как потом передать значения этих полей в хранимку,и на основе результата строить отчет??

    вариант с исп-м TADODataSet и в нем cmdStoredProc не проходит, потому что параметры нужно указать до начала использования фасты

    подскажите пожалуйста
  • LexLex
    отредактировано 07:42
    dimm написал:
    параметры нужно указать до начала использования фасты
    Как ты собираешься укаывать параметры до использования фаста если их значения стоновяться известными только после запуска отчета?

    Если тебе нужно задать параметры у ХП после их ввода в диалоговом окне самого отчета то могу предложить два варианта:

    1. Создать ADOQuery в самом отчете в котрой через EXEC (для MSSQL) будешь вызывать саму ХП на сервере.
    2. Если ХП прописана в коде дельфи, то делаешь внешнюю функцию по установке параметров у этой ХП.
  • отредактировано 07:42
    первый вариант не подходит,потому что оракл.

    задача: передать значение из FR диалога в параметры ХП, а на основе результата ХП строить отчет

    обращаюсь к ХП я через TADODataSet. а отчет на базе этого же датасета.

    что ты имеешь ввиду под внешней функцией? КАК к ней обратиться из фасты?
  • LexLex
    отредактировано 07:42
    Создаешь внешнюю функцию для отчета (см. документацию и если FR 3.19 сдесь) которая будет задавать параметры для твоего TADODataSet(для каждого свою) что - то типа:
    MyDataSet_SetParm(ParamName: String; ParamValue: Variant): Boolean;
    и просто обращаешься к ней как к стандартной

    например
    procedure Button1OnClick(Sender: TfrxComponent);
    begin
      MyDataSet_SetParm('date_from', Edit1.Text);
      MyDataSet_SetParm('date_to', Edit2.Text);
    end;
    

  • отредактировано December 2005
    спасибо!

    а как сделать новый метод глобальным, т.е. чтобы он был зарегистрирован во всей фасте, в т.ч. на сервере.

    имею ввиду - как на frxServer зарегистрировать эту процедуру?
  • LexLex
    отредактировано 07:42
    Насчет сервера не знаю а
    написал:
    во всей фасте
    описано в документации там где через fsGlobalUnit (1-й способ).
  • отредактировано 07:42
    Lex, человеческое тебе спасибо
  • отредактировано December 2005
    Lex, возник еще вопрос:
    где изменить сырцы фасты с тем,чтобы добавить свой компонент в ран-тайм дизайнера?
    то есть чтобы при даблклике на frxReport была доступнка своя компонента
  • LexLex
    отредактировано 07:42
    Исходники доступны начиная с pro версии (у меня std)

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

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