Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как прикрутить хранимую процедуру к программе.... [D5, IB6.x]


SkyR ©   (2002-07-16 10:22:00) 

Такой вопросец!
Сделал я хранимую процедуру. Она РАБОТАЕТ! Но не могу прикрутить ее к программе!
Я кидаю в Модуль Данных TIBStoredProc. Привязываю к нему TdataSource. В TIBQuery прописываю этот соурс. Запускаю запрос. Все ништяк!
Потом пытаюсь перед preview Qreport.
А он пишет типа запрос – пустой!
Как мне прикрутить ее?


kaif   (2002-07-17 12:23:00) [1]

2 skyr © (17.07.02 10:56)
DataSource дословно значит "источник данных".
Однако IBQuery берет данные из базы данных, а не из DataSource. Свойство DataSorce нужно IBQuery, чтобы взять оттуда значения параметровдля запроса и для управления из внешнего мира переоткрытием запроса в случае связей типа Master-Detail. В этих случаях в свойстве DataSource находится указатель на компонент типа TDataSource, связанный с главным набором (Master-ом), котрый может быть любым потомком TDataSet.


skyr   (2002-07-17 10:56:00) [2]

Все заработало не надо было просто прописывать в DataSource в IBQuery НИЧЕГО! Я и я сам немного протупил, а в остальном ВСЕМ кто помогал, и не очень, ОГРОМНОЕ спасибо !!!!!!


Johnmen   (2002-07-17 09:55:00) [3]

Да-а-а-а-а-а....Случай тяжелый, но, надеюсь излечимый....:)

>SkyR © (17.07.02 06:49)

Если сможешь ответить на мой вопрос, то и на свой без проблем :
"У меня не работает комп ! В чем дело ?"


SkyR   (2002-07-17 06:49:00) [4]

Получилось!!!!!
Просто не надо прописывать в IBQuery в свойстве DataSource ничего!!!

Но зато другой косяк! Виснет прога если пытаюсь вывести на экран отчет:
SvodRepForm.FormSvodRep.QuickRep1.Preview;
Кто нить знает почему?


SkyR   (2002-07-17 06:36:00) [5]

В свойстве DataSource компонента IBQuery нужно прописать соурс IBStoredProc, если этого не сделать то пиши не пиши запрос не будет знать откуда брать данные. У меня процедура возвращает 4 поля! Все когда я 2 раза щелкнув на компоненте(IBQuery) добавляю в список в отделбном окне поля он эти поля правильно определяет 4 шт. Но потом если я пытаюсь свойство Active запроса поставить True, он мне пишет типа Empty Query. Хотя я прописал запрос в свойстве SQL затем все настроил как всегда при работе с запросом, только вместо таблицы IB использовал компонент IBStoredProc. По идеи не должно быть особой разницы.
preview Qreport-а для непонятливых нужен чтобы вывести на экран отчет!


kaif   (2002-07-17 02:32:00) [6]

>Я кидаю в Модуль Данных TIBStoredProc. Привязываю к нему >TdataSource. В TIBQuery прописываю этот соурс. Запускаю запрос. >Все ништяк!
Что ништяк? Как в TIBQuery прописывают этот соурс?
И черт побери, откуда еще сваливается на голову preview Qreport-а?
Может, граждане что-то понимают в твоем вопросе, но я - решительно ничего.
Мне так кажется, что QReport-у требуется только IBQuery и больше ничего. Надеюсь, ты не пытаешься наладить взаимодействие между отчетом и процедурой, не возвращающей набор данных и вызываемой исключительно через EXECUTE PROCEDURE? А для SELECT-процедуры, имеющей RETURNS, IBQuery - за глаза хватит. К тому же QReport по-моему работал прямо с DataSet, без всякого DataSource (хотя боюсь ошибиться). Только нужно не забыть его в свойстве DataSet репорта указать.


SkyR   (2002-07-17 01:52:00) [7]

Я так и делаю только:
select distinct * from svod_proc
А он, падла, выдает сообщение типа - запрос пустой!
Даже в Design-time!


Desdechado   (2002-07-16 10:31:00) [8]

TStoredProc и TQuery происходят от одного предка, поэтому обычно не нужно их врубать каскадом, поскольку такое использование предназначено совсем для других целей (см. Help)


Kaban   (2002-07-16 10:25:00) [9]

Я так понимаю, если ты ее хочешь прикрутить к QReport, то
хранимая процедура возвращает значения. Тогда просто в TQuery
Select * from SPName(:Param1,:Param2)


Наверх

Титульная страница Поиск, карта сайта Написать письмо