Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];

Вниз

Вызов ХП из FastReport   Найти похожие ветки 

 
девушка   (2009-06-17 12:22) [0]

Добрый день!

Помогите пожалуйста, не могу понять в чем туплю.
Хочу в FR вызвать процедуру с параметрами.

В design-time создаю в репорте ADOQuery, цепляю его через frxADOComponent к своему основному коннекшену.

В тексте ADOQuery пишу вызов хранимки. Набор возвращаемых полей он определеяет.
НО!

Если пишу вызов просто процедуры (у которой нет параметров), то все работает.

exec dbo.p_select_PERSON_all


А если пишу вызов процедуры с параметром:

exec dbo.p_select_PERSON 1

то ничего не возвращает. Тот же самый запрос в SQLредакторе возвращает нужные данные.

В чем туплю???

Delphi 2005, FR 4


 
девушка   (2009-06-17 13:02) [1]

О! Вообще перестало анные возвращать... может быть по каким-то причинам не переоткрывается Query?


 
Dennis I. Komarov ©   (2009-06-17 13:08) [2]

1. Query -> DataSet
2. Вызвать процедуру скажем из QA(или аналоги)


 
девушка   (2009-06-17 13:11) [3]

Извините, все работает - просто какое-то сочетание моих внутренних глюков.
Создала чистый отчет, создала новые квери - все берет.
Осталось только параметры в отчет передаваить и все зашибись будет.


 
Dennis I. Komarov ©   (2009-06-17 13:13) [4]

Все-таки Query замените...


 
девушка   (2009-06-17 13:29) [5]

Да нету у меня такого компонента в фаст-репорте :(
Я создаю квери в САМОМ ОТЧЕТЕ


 
девушка   (2009-06-17 13:30) [6]

Странный глюк - когда создаю Query в уже существующем отчете - ничего не возвращает :(

И еще вопрос - на какое событие повесить присвоение параметров?


 
Dennis I. Komarov ©   (2009-06-17 13:32) [7]

:) А у меня FR. если нету, тогда не меняйте...


 
Dennis I. Komarov ©   (2009-06-17 13:33) [8]


> И еще вопрос - на какое событие повесить присвоение параметров?

???


 
девушка   (2009-06-17 13:38) [9]

имелось ввиду:

var C: TfrxComponent;
...
 C:=frxReport1.FindObject("ADOQuery1");
 if (C <> nil) and (C is TfrxADOQuery) then
   TfrxADOQuery(C).ParamByName("IdDoc").Value:=DBGrid.DataSource.DataSet.FieldValue s["IdDoc"];
...
 frxReport1.ShowReport();


ADOQuery - не компонент на форме, а компонент ВНУТРИ ОТЧЕТА


 
девушка   (2009-06-17 13:38) [10]

все-равно нифига не работает :(
параметр присваивает - но показывает пустую страницу


 
Dennis I. Komarov ©   (2009-06-17 13:45) [11]

речь вроде о хранимках шла, зачем ParamByName?

P.S.
 У меня нету FR...


 
девушка   (2009-06-17 13:55) [12]

Оказывается, тут дело вообще не в параметрах.

Profiler показывает что запрос вообще не отправляется на сервер.

В дата модуле есть ADOConnection - через который работают все датасеты в программе.
Для FR кидаю на форму frxADOComponents1, указываю там DefaultDatabase мой ADOConnection.
Кидаю на форму компонент frxReport. Создаю новый отчет.
В отчете в разделе Data кидаю ADOQuery. Этот ADOQuery сразу видет мой ADOConnection. У ADOQuery скуль-текст.

Так вот - похоже что где-то глючит вся эта связка и в момент когда я вызываю
frxReport.ShowReport();

Обнавление данных в ADOQuery не происходит :(


 
девушка   (2009-06-17 14:01) [13]

пробовала (запрос уже без параметров)

procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
 ShowMessage("Page1OnBeforePrint");                                
ADOQuery.Active:=true;
ShowMessage("Page1OnBeforePrint end");    
end;


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


 
Dennis I. Komarov ©   (2009-06-17 14:27) [14]

Девушку не Виталиком зовут?


 
девушка   (2009-06-17 16:49) [15]

Нет - Катей.


 
Dennis I. Komarov ©   (2009-06-17 17:05) [16]


> Но профайлер видит что запрос был и отработал.

Ну, значит он был, и если был правилен, значит должен был вернуть результат запроса, ну а как с ним FR и куда его девает, это уже на его совести...


 
AndreyV ©   (2009-06-18 16:14) [17]

> [9] девушка   (17.06.09 13:38)
> имелось ввиду:
>
> var C: TfrxComponent;
> ...
> C:=frxReport1.FindObject("ADOQuery1");
> if (C <> nil) and (C is TfrxADOQuery) then
>   TfrxADOQuery(C).ParamByName("IdDoc").Value:=DBGrid.DataSource.DataSet.
> FieldValue s["IdDoc"];
> ...
> frxReport1.ShowReport();
>
> ADOQuery - не компонент на форме, а компонент ВНУТРИ ОТЧЕТА

По моему не понимание подходов ФР. Зачем лезть из хоста в "ADOQuery компонент ВНУТРИ ОТЧЕТА"? Ну и создай TADOQuery на форме и сделай всё как обычно, а свяжи с ФР посредством TfrxDBDataSet, или уж всё делай в ФР - TfrxADOQuery обёртка над TADOQuery, для изменения отчёта без перекомпиляции, но, как я вижу, у тебя не тот случай.


 
девушка   (2009-06-20 09:15) [18]


> как я вижу, у тебя не тот случай.


вся идея-то какраз в том чтобы вынести логику построения отчета из приложения. Вот у меня в приложении 10 видов отчетов, принимающих 1-2 целочисленых параметра.
Я хочу вынести все запросы в отчет и передавать туда переменные, а отчет уж пусть сам разбирается что да как...


 
AndreyV ©   (2009-06-20 22:57) [19]

> [18] девушка   (20.06.09 09:15)
> Я хочу вынести все запросы в отчет и передавать туда переменные,
> а отчет уж пусть сам разбирается что да как...

А в [9] что?

Надо назначить обработчик на OnGetValue и в нём передавать значение переменных в ФР.


 
Dennis I. Komarov ©   (2009-06-22 17:02) [20]


> Я хочу вынести все запросы в отчет и передавать туда переменные,
>  а отчет уж пусть сам разбирается что да как...

:) Я поражен логикой...

А давайте праграммировать "на отчетах и т.п." Зыж здорово - прикрутил отчет и программа готова  :)


 
AndreyV ©   (2009-06-22 19:20) [21]

> [20] Dennis I. Komarov ©   (22.06.09 17:02)
> > Я хочу вынести все запросы в отчет и передавать туда переменные,
> >  а отчет уж пусть сам разбирается что да как...
>
> :) Я поражен логикой...
>
> А давайте праграммировать "на отчетах и т.п." Зыж здорово
> - прикрутил отчет и программа готова  :)

Да нормальная логика - ФР это позволяет, в том его большой плюс, вот у автора, похоже, каша в голове.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.005 c
1-1212645024
EgorovAlex
2008-06-05 09:50
2009.08.23
Есть TAction и он назначен кнопке в тулбаре и пункту меню,


1-1211977078
TForumHelp
2008-05-28 16:17
2009.08.23
Создание компонента


1-1212582291
i
2008-06-04 16:24
2009.08.23
проблема с tpaintbox и jpegimage


2-1245780860
Tigros
2009-06-23 22:14
2009.08.23
Динамический SQL запрос


4-1214887137
anwe
2008-07-01 08:38
2009.08.23
Обработка WM_CHAR в WH_GETMESSAGE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский