Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.01;
Скачать: CL | DM;

Вниз

ADO (странное поведение)   Найти похожие ветки 

 
PSV   (2008-06-19 15:44) [0]

Здравствуйте. Вопрс в следующем: на MSSQL есть процедура, которую выполняю посредством компонентов ADO (Delphi5). На выполнение требуется максимум 6 сек. Процедура возвращает набор данных. На этапе разработки (Active:=True) отрабатывает нормально. При запуске программы выдает ошибку commandtext does not return result set. Использовал по очереди компоненты TADOQuery, TADOStoredProc,TADoDataSet. Результат-та же ошибка. Запрос перехваченный трассировщиком и запущенный на MSSQL возвращает данные. Урезал процедуру до минимума - выдает не те данные но быстро - около 1 сек. В этом случае все работает - но результаты не те. Впечатление будто если процедура не вложилась в секунду то все. Подскажите как быть.


 
MsGuns ©   (2008-06-19 16:06) [1]

Код запуска в делфи и текст хранимки сюда


 
stas ©   (2008-06-19 16:06) [2]

1. Как вызываете процедуру
2. Покажите текст процедуры


 
PSV   (2008-06-19 16:27) [3]

1.Процедура возвращает данные о всех работников предприятия
Состоит из запроса в несколько таблиц и изменения последней даты перемещения на первую дату перемещения на данную профессию.

ALTER   PROCEDURE ot_ARM(@FD datetime)

 AS

Select
r.TabN
,Famil+" "+Imya+" "+Otchectv as F
,Mug_Gen
,convert(varchar(10),convert(datetime,Dat_rogd),104) as DR--"Дата рожд."
,f.Name+" "+isnull(r.Razr,"") as PR--"Профессия"
,d.Name as PD--"Подразделение"
,Tel --as "Телефон"
,p.Iden_kod --as "Иден.код"
isnull(ltrim(Obl+" "),"")+isnull(ltrim(Gorod+" "),"")+isnull(ltrim(Reg+" "),"")+
isnull(ltrim(Der+" "),"")+isnull(ltrim(Ul+" "),"")+
isnull(Dom+" ","")+isnull(ltrim(Korp+" "),"")+isnull(Kv,"") as ADR--"Адрес"
,convert(varchar(10),convert(datetime,ar.DFPer),104) DS--"Дата поступл."
,convert(varchar(10),convert(datetime,r.DFPer),104) DD--as "Дата перемещ."
,r.KodProf,r.Razr,r.DFPer as DP
into #TMP
from
PersPeremNew ar
,Personal p
,PersData t
,PersPeremNew r
,Sperem rn
,SpodrN d
,SprofN f
where
ar.VidDog not in(3,5,7,8,6)
and ar.DFPer in(select Max(DFPer) from PersPeremNew where Iden_kod=p.Iden_kod and VidPer=1 and DFPer<=@FD) and ar.VidPer=1

and t.InsDate in(select Max(InsDate) from PersData where Iden_kod=p.Iden_kod and InsDate<=@FD)
and r.VidPer=rn.Id
and rn.PrCnst>=1
and r.DFPer in(select Max(DFPer) from PersPeremNew,Sperem where Iden_kod=p.Iden_kod and Id=VidPer and VidPer<>2 and PrCnst>=1 and DFPer<=@FD) and r.VidPer<>2

and d.KeyPodr=r.KodPodr
and f.KeyProf=r.KodProf
and ar.Iden_kod=p.Iden_kod
and ar.Iden_kod=t.Iden_kod
and ar.Iden_kod=r.Iden_kod
and
p.Iden_kod not in(select Iden_kod from PersPeremNew uv1 where VidPer=2 and DNDog=ar.DFPer and DFPer<=@FD)
order by Famil,FIO

while exists(
select t.Iden_kod from #tTMP t,
(select t.Iden_kod,max(DFPer)as DFP,DP
from PersPeremNew n,#tTMP t,Sperem where t.Iden_kod=n.Iden_kod and VidPer=Id and PrCnst=1
and DFPer<DP group by t.Iden_kod,DP)n,PersPeremNew m,Sperem
where  t.Iden_kod=m.Iden_kod and t.Iden_kod=n.Iden_kod and m.VidPer=Id and PrCnst=1
and DFP=m.DFPer and m.KodProf=t.KodProf and isnull(m.Razr,"")=isnull(t.Razr,"")
)

update t set t.DP=DFP from #tTMP t,
(select t.Iden_kod,max(DFPer)as DFP,DP
from PersPeremNew n,#tTMP t,Sperem where t.Iden_kod=n.Iden_kod and VidPer=Id and PrCnst=1
and DFPer<DP group by t.Iden_kod,DP)n,PersPeremNew m,Sperem
where  t.Iden_kod=m.Iden_kod and t.Iden_kod=n.Iden_kod and m.VidPer=Id and PrCnst=1
and DFP=m.DFPer and m.KodProf=t.KodProf and isnull(m.Razr,"")=isnull(t.Razr,"")

select TabN as "Таб.№",F as "ФИО",Mug_Gen as "Пол",DR as "Дата рожд.",PR as "Профессия",
PD as "Подразделение",Tel as "Телефон",Iden_kod as "Иден.код",ADR as "Адрес",
DS as "Дата поступл.",convert(varchar(10),convert(datetime,DP),104) as "Дата перемещ." from #tTMP
order by F

GO

2. ADOQuery.SQL    ot_ARM :Dt


 
Ega23 ©   (2008-06-19 16:31) [4]

и сколько этот ужос из QA выполняется?


 
stas ©   (2008-06-19 16:33) [5]

Это MSSQL 2005 ?
какая версия MDAC? попробуйте подключится через Native Client


 
Ega23 ©   (2008-06-19 16:55) [6]


> Это MSSQL 2005 ?


На каком основании Вы так думаете и какое это имеет значение?


 
PSV   (2008-06-19 17:06) [7]

MSSQL 2000 MDAC 2.8 SP1


 
Ega23 ©   (2008-06-19 17:13) [8]


> MSSQL 2000 MDAC 2.8 SP1
>

Сколько секунд идёт выполнение из Query Analyzer?


 
PSV   (2008-06-19 17:23) [9]

6 сек.


 
Ega23 ©   (2008-06-19 17:26) [10]

Чему равно значение TADOConnection.CommandTimeout на клиенте?


 
PSV   (2008-06-19 17:27) [11]

30 (по умолчанию)


 
Ega23 ©   (2008-06-19 17:30) [12]

ALTER   PROCEDURE ot_ARM(@FD datetime = 0)

Если так, то что?


 
PSV   (2008-06-19 17:42) [13]

в Query Analyzer через 1 сек. пустой результат ;с программы - та же ошибка ; из среды разработки как в Query Analyzer


 
PSV   (2008-06-19 18:02) [14]

Дело даже не во времени выполнения процедуры. После того, как я убрал создание временной таблицы и цикл, но удлинил время выполнения процедуры путем выполнения "левых" запросов до 9 сек. она отрабатывает с программы.


 
ЮЮ ©   (2008-06-20 04:41) [15]

> ADO (Delphi5)

Древнее Delphi не нашел? Update для ADO установлен?

SET NOCOUNT ON поставь в процедуре.


 
stud ©   (2008-06-20 10:53) [16]

а чему равно значение параметра-  даты, при перехвате запроса через профайлер?


 
Ega23 ©   (2008-06-20 10:54) [17]


> SET NOCOUNT ON поставь в процедуре.


Кстати да, у тебя же там Update есть...


 
PSV   (2008-06-20 12:49) [18]

строка, отображаемая в профайлере:
exec sp_executesql N"exec ot_ARM @P1
", N"@P1 datetime", "Jun 20 2008 12:00:00:000AM"

строка SET NOCOUNT ON , добавленная в процедуру - помогла.

всем откликнувшимся большое спасибо!



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

Текущий архив: 2009.02.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
15-1227983453
NailMan
2008-11-29 21:30
2009.02.01
Какую-нибудь книжку по сварочному делу посоветуйте


9-1168524677
Samarik
2007-01-11 17:11
2009.02.01
Skin ы для 3D моделей


2-1229501340
charoey_mag
2008-12-17 11:09
2009.02.01
Работа с Unicode


2-1229513471
Leks
2008-12-17 14:31
2009.02.01
SpeedButton со скругленными углами


15-1228513848
Керк
2008-12-06 00:50
2009.02.01
CAML