|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Я в шоке, битый час мучаюсь, но генератор идей на нуле... Решили мы перенести логику на сервер. Написали процедуру, которая получает параметры с формы и заполняет нужные таблички, из которых форма потом забирает данные вьюхой. Всё замечательно, только считает не правельно. Причём вся фишка в том, что если запустить процедуру из QA, то всё работет правельно, а если передать туже самую строчку чарез ADO, то не работает. Где суслик??? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
debug exec dbo.onclick @ID = NULL, @prijmeni = NULL, @rnarozeni= NULL, @status = NULL, @praceod = NULL, @pracedo = NULL, @vikendy = NULL, @vyjadrschop = 100, @spismluva = 100, @preknamitek = 100, @naslou = 100, @obsahspr = 100, @dodrstandardy = 100, @komunikace = 0, @ZamE = -1, @zak = NULL, @SkupE = 0, @hwnd = 1443140, @od = {d '2008-12-01'}, @do = {d '2008-12-05'}, @chkOper = 0, @groupby = 1, @chkNaklady = -1 Если запустить в QA этот же текст, всё считает правельно... :/ Я суслика в упор не вижу, хотя он похоже не прячется... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 22:35 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Шыфла если передать туже самую строчку чарез ADO, то не работает. Как именно не работает, надо угадать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 22:45 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Владимир Саныч, процедура срабатывает, но вычисляет другие значения. Поскольку процедура большая и к тому же рабочая (!) искать что в ней не срабатывет ну совсем влом. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 23:31 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Может, дело в формате даты (там два поля таких)? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2009, 23:33 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Владимир Саныч, Дата передаётся корректно... :/ Вообсче такое чувство, что параметры передаются корректно... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 00:55 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
А вы все-же попробуйте в хранимке задать константой эти две даты и посмотреть на результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 01:52 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
ШыфлДата передаётся корректно... :/ Вообсче такое чувство, что параметры передаются корректно...И это видно в профайлере? >ADO vs QA сравните передаваемые команды там же. зы. @dt='yyyymmdd' ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 12:29 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Глюк возникает только в том случае, если в параметры даты передать Null... :| Это выдаёт профайлер когда команда идёт из Ассесс SQL:BatchCompleteexec dbo.onclick @ID = NULL, @prijmeni = NULL, @rnarozeni= NULL, @status = NULL, @praceod = Null, @pracedo = Null, @vikendy = NULL, @vyjadrschop = 100, @spismluva = 100, @preknamitek = 100, @naslou = 100, @obsahspr = 100, @dodrstandardy = 100, @komunikace = 0, @ZamE = -1, @zak = NULL, @SkupE = 0, @hwnd = 1049876, @od = {d '2008-12-01'}, @do = Null, @chkOper = 0, @chkNaklady = -1, @groupby = 1 А это - когда запускаю в QA: SQL:BatchCompleteexec dbo.onclick @ID = NULL, @prijmeni = NULL, @rnarozeni= NULL, @status = NULL, @praceod = Null, @pracedo = Null, @vikendy = NULL, @vyjadrschop = 100, @spismluva = 100, @preknamitek = 100, @naslou = 100, @obsahspr = 100, @dodrstandardy = 100, @komunikace = 0, @ZamE = -1, @zak = NULL, @SkupE = 0, @hwnd = 1049876, @od = {d '2008-12-01'}, @do = Null, @chkOper = 0, @chkNaklady = -1, @groupby = 1 Результаты разные!!! :| ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 14:47 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Суслик пустился впляс! Посылаю через Ассесс 2 строки: авторexec dbo.onclick @ID = NULL, @prijmeni = NULL, @rnarozeni= NULL, @status = NULL, @praceod = Null, @pracedo = Null, @vikendy = NULL, @vyjadrschop = 100, @spismluva = 100, @preknamitek = 100, @naslou = 100, @obsahspr = 100, @dodrstandardy = 100, @komunikace = 0, @ZamE = -1, @zak = NULL, @SkupE = 0, @hwnd = 1049876, @od = {d '2008-12-01'}, @do = {d '2008-12-08'} , @chkOper = 0, @chkNaklady = -1, @groupby = 1 Считается правельно Другая строка авторexec dbo.onclick @ID = NULL, @prijmeni = NULL, @rnarozeni= NULL, @status = NULL, @praceod = Null, @pracedo = Null, @vikendy = NULL, @vyjadrschop = 100, @spismluva = 100, @preknamitek = 100, @naslou = 100, @obsahspr = 100, @dodrstandardy = 100, @komunikace = 0, @ZamE = -1, @zak = NULL, @SkupE = 0, @hwnd = 1049876, @od = {d '2008-12-01'}, @do = {d '2008-12-09'} , @chkOper = 0, @chkNaklady = -1, @groupby = 1 Считается не правельно Через QA обе строки считаются правельно... Подскажите хоть слово в гугл :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 16:37 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 16:48 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
adv, Нефига. Изучение профайлера показало, что при передаче команды через Access (ADO) не срабатывают 2 последние инструкции процедуры (update). Т.е. после определённой инструкции (несложный инсерт) все инструкции не проходят. Пойду спрашу MSSQLов П.С. Ещё раз повторюсь - через QA всё работает... :( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 18:02 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Эмпирически выяснил, что вылетает когда суммируются Null значения. Сразу же на стедующей команде... :/ Грусно как-то отлавливать все возможные Null, может может можно что-то ещё подкрутить? Есть может есть где-нить параметр подключения? Или ещё какая магическая кнопка? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 21:45 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Т.е. во время выполнения процедуры в QA вылетает сообщения SQL Server Warning: Null value is eliminated by an aggregate or other SET operation. И это сообщение завершает выполнение батча. Кто-нить сталкивался с подобным поведением? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 21:50 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
сначала сервиспак накатите. хотя бы третий. потом дальше пойдём. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 22:09 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
ШыфлТ.е. во время выполнения процедуры в QA вылетает сообщения SQL Server Warning: Null value is eliminated by an aggregate or other SET operation. И это сообщение завершает выполнение батча. Кто-нить сталкивался с подобным поведением?О, так всё-таки и в qa тоже не дорабатывает. адо вс ка... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 22:14 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
adv, В QA дорабатывает! А через Ассеss - нет. Вылетает при суммации null значений ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 22:17 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
ШыфлВ QA дорабатывает! А через Ассеss - нет. Ну и сравните полные трассы для аксесса и квериэнэлайзера. авторВылетает при суммации null значенийв смысле при группировке? зы. сервиспак накинули? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 22:34 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
adv, Сервиспак накатил уже давно - всё равно не работало Решил найти где процедура таки падает. Создал табличку log1 с 1 полем. В теле процедуры раскидал инсерты аля Код: plaintext 1. 2. 3. 4.
Запустил. Процедура срабатывает без ошибок там, где до этого падала... Или лыжы не едут или одно из двух... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 22:56 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Всё оказалось намного проще. Процедура по ходу исполнения выдавала рекордсет (строки для которых не заполнены определённые параметры), но это происходило где-то в середине процедуры. QA это совершенно не мешает закончить батч, а вот Access (ADO) после получения этого рекордсета начинает танцы с саблями и завершает выполнение батча преждевременно, непонятно в каком месте и непонятно по какой причине, причём без сообщения об ошибке. Батч просто заканчивался "на полуслове" так сказать - очивидно после получения рекордсета ADO cчитает миссию выполненой и закрывает соединение согласно каким-то странным способом, на что сервер отвечает прерыванием батча. После того, как выдачу рекордсета перенёс вконец, всё работает корректно. П.с. Когда расставлял метки, этот селект просто закоментил как несущественны. А оно возьми да и заработай. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 16:47 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
ШыфлВсё оказалось намного проще. Процедура по ходу исполнения выдавала рекордсет (строки для которых не заполнены определённые параметры), но это происходило где-то в середине процедуры. QA это совершенно не мешает закончить батч, а вот Access (ADO) после получения этого рекордсета начинает танцы с саблями и завершает выполнение батча преждевременно, непонятно в каком месте и непонятно по какой причине, причём без сообщения об ошибке. Батч просто заканчивался "на полуслове" так сказать - очивидно после получения рекордсета ADO cчитает миссию выполненой и закрывает соединение согласно каким-то странным способом, на что сервер отвечает прерыванием батча. После того, как выдачу рекордсета перенёс вконец, всё работает корректно. П.с. Когда расставлял метки, этот селект просто закоментил как несущественны. А оно возьми да и заработай. :) А в процедуре есть SET NOCOUNT ON? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 16:54 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
just asking, Не было. Если его включить, то всё работает корректно и без исправлений. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 17:01 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
Шыфлjust asking, Не было. Если его включить, то всё работает корректно и без исправлений. Жаль, что поздно спросил :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 17:07 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
just askingШыфлjust asking, Не было. Если его включить, то всё работает корректно и без исправлений. Жаль, что поздно спросил :-) Блин, на эти грабли уже столько народу наступило, что можно включать такие ситуации в ФАК, имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 18:09 |
|
Разные результаты одного запроса! (ADO vs QA)
|
|||
---|---|---|---|
#18+
just askingШыфлjust asking, Не было. Если его включить, то всё работает корректно и без исправлений. Жаль, что поздно спросил :-)твою маму. Я уже и не думал, что кто-то не ставит сет нокаунт он в процедурах. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 18:22 |
|
|
Start [/forum/topic.php?fid=45&tid=1639382&gotonew=1]: |
0ms |
get settings: |
2ms |
get forum list: |
8ms |
check forum access: |
0ms |
check topic access: |
0ms |
track hit: |
11ms |
get topic data: |
10ms |
get first new msg: |
1ms |
get forum data: |
1ms |
get page messages: |
28ms |
get tp. blocked users: |
0ms |
others: | 89ms |
total: | 150ms |
0 / 0 |