![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO, QReport, ;SQL ;и хранимые процедуры [D6, MSSQL]
Dan © (2003-06-27 10:24:00)Помогите, пожалуйста.
Делаю отчет QReport. Связываюсь с базой SQL через ADO. Точнее, у меня есть хранимая процедура с параметрами, вот с ней-то я и хочу связаться, получить с ее помощью данные, а потом использовать их в QReport. Пытаюсь использовать ADOStoredProc. Вроде настроила, когда выбираю Active := True (в Object Inspector) сначала долго жду, а потом появляется ошибка - Timeout Expired.
В чем дело? Может вообще нельзя никак использовать ADOStoredProc в QReport? Или дело в хранимой процедуре? Хотя в SQL Query Analizer при ее запуске выбираются данные, которые мне нужны? А в ADOQuery можно вызывать хранимые процедуры или писать запросы с union?
Может вообще я использую неправильный подход?
Помогите новичку.
Заранее спасибо.
Dan (2003-06-27 12:41:00) [1]А почему к созданной view так долго идет запрос?
Семен Сорокин (2003-06-27 12:32:00) [2]В QA выборка длилась 12 минут и так и не выбралось
запрос пересмотреть, индексы добавить, использовать хранимую процедуру
Dan (2003-06-27 12:29:00) [3]Семен Сорокин ©
большое спасибо за внимание. Судя по всему - дело в сервере. Вот только не знаю, можно как-то средствами ADOConnection или Delphi что-нибудь сделать? Может будут какие-то советы?
В QA выборка длилась 12 минут и так и не выбралось - у меня терпения не хватило.
Dan (2003-06-27 12:18:00) [4]Простые запросы с задержкой, но работают. А вот такой:
select name_uchrej,name_kr,name_kat,count(famil) as kolvo from w_otch_period_ygd
where id_aktivgod=2 and date_inp between "2003-01-01" and "2003-06-30"
group by name_uchrej,name_kr,name_kat
union
select name_uchrej,name_kr,type_pip,count(famil) as kolvo from w_otch_period_pens
where id_aktivgod=2 and date_inp between "2003-01-01" and "2003-06-30"
group by name_uchrej,name_kr,type_pip
union
select name_uchrej,name_kr,type_pip,count(famil) as kolvo from w_otch_fam_ygd
where id_aktivgod=2 and date_inp between "2003-01-01" and "2003-06-30"
group by name_uchrej,name_kr,type_pip
union
select name_uchrej,name_kr,type_pip,count(famil) as kolvo from w_otch_fam_pens
where id_aktivgod=2 and date_inp between "2003-01-01" and "2003-06-30"
group by name_uchrej,name_kr,type_pip
или вот такой (создана view на основе предыдущего запроса w_allotch)
Select * from w_allotch
тоже не пашет, даже в QA, хотя вчера было все нормально (в QA по крайней мере).
Семен Сорокин (2003-06-27 12:08:00) [5]сделай простой запрос вместо сложного твоего, если опять тоже - значит проблема не в запросе, а в строке твоего коннекта.
Dan (2003-06-27 12:00:00) [6]Семен, подскажите, как избежать или обойти ошибку Timeout Expired?
Запрос сложный, соединение оставляет желать лучшего. Вчера в SQL Query Analazer"е все работало превосходно, мигом выдавались результаты, а сегодня - просто жуть какая-то.
Семен Сорокин (2003-06-27 10:59:00) [7]а потом появляется ошибка - Timeout Expired.
может нет коннекта
Может вообще нельзя никак использовать ADOStoredProc в QReport?
можно
А в ADOQuery можно вызывать хранимые процедуры или писать запросы с union
хранимые процедуры - нет, union - да