Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разные результаты одного запроса! (ADO vs QA) / 24 сообщений из 24, страница 1 из 1
19.01.2009, 22:35
    #35765947
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Я в шоке, битый час мучаюсь, но генератор идей на нуле...

Решили мы перенести логику на сервер. Написали процедуру, которая получает параметры с формы и заполняет нужные таблички, из которых форма потом забирает данные вьюхой. Всё замечательно, только считает не правельно. Причём вся фишка в том, что если запустить процедуру из 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.
Dim c As New ADODB.Connection
Dim d As New ADODB.Command
...
c.Open AdoConn
c.CommandTimeout =  20000 
d.ActiveConnection = c
d.CommandTimeout =  20000 

q = "exec dbo.onclick " & _
        "@ID = " & Nz(Me.ID, "NULL") & ", " & _
        "@prijmeni = " & Nz(Me.prijmeni, "NULL") & ", " & _
        "@rnarozeni= " & Nz(Me.rnarozeni, "NULL") & ", " & _
        "@status = " & Nz(Me.status, "NULL") & ", " & _
        "@praceod = " & IIf(Nz(SQLDate(Me.praceod), "NULL") = "", "NULL", Nz(SQLDate(Me.praceod), "NULL")) & ", " & _
        "@pracedo = " & IIf(Nz(SQLDate(Me.pracedo), "NULL") = "", "NULL", Nz(SQLDate(Me.pracedo), "NULL")) & ", " & _
        "@vikendy = " & Nz(Me.vikendy, "NULL") & ", " & _
        "@vyjadrschop = " & Me.vyjadrschop & ", " & _
        "@spismluva = " & Me.spismluva & ", " & _
        "@preknamitek = " & Me.preknamitek & ", "
q = q & "@naslou = " & Me.naslou & ", " & _
        "@obsahspr = " & Me.obsahspr & ", " & _
        "@dodrstandardy = " & Me.dodrstandardy & ", " & _
        "@komunikace = " & Me.komunikace & ", " & _
        "@ZamE = " & GetZamE() & ", " & _
        "@zak = " & Nz(Me.zak, "NULL") & ", " & _
        "@SkupE = " & GetSkupE() & ", " & _
        "@hwnd = " & Me.hwnd & ", " & _
        "@od = " & IIf(Nz(SQLDate(Me.Od), "NULL") = "", "NULL", Nz(SQLDate(Me.Od), "NULL")) & ", " & _
        "@do = " & IIf(Nz(SQLDate(dodatum), "NULL") = "", "NULL", Nz(SQLDate(dodatum), "NULL")) & ", " & _
        "@chkOper = " & IIf(Me.chkOper,  1 ,  0 ) & ", " & _
        "@groupby = " & Me.groupby & ", " & _
        "@chkNaklady = " & CInt(Me.chkNaklady)
Debug.Print q
d.CommandText = q
d.CommandType = adCmdText
d.Execute
c.Close
Me.Vysledky.Requery
Debug.Print выдаёт
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 этот же текст, всё считает правельно... :/
Я суслика в упор не вижу, хотя он похоже не прячется...
...
Рейтинг: 0 / 0
19.01.2009, 22:45
    #35765955
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Шыфла если передать туже самую строчку чарез ADO, то не работает.
Как именно не работает, надо угадать?
...
Рейтинг: 0 / 0
19.01.2009, 23:31
    #35766008
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Владимир Саныч,

процедура срабатывает, но вычисляет другие значения. Поскольку процедура большая и к тому же рабочая (!) искать что в ней не срабатывет ну совсем влом.
...
Рейтинг: 0 / 0
19.01.2009, 23:33
    #35766014
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Может, дело в формате даты (там два поля таких)?
...
Рейтинг: 0 / 0
20.01.2009, 00:55
    #35766076
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Владимир Саныч,

Дата передаётся корректно... :/ Вообсче такое чувство, что параметры передаются корректно...
...
Рейтинг: 0 / 0
20.01.2009, 01:52
    #35766100
Страдалецъ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
А вы все-же попробуйте в хранимке задать константой эти две даты и посмотреть на результат.
...
Рейтинг: 0 / 0
20.01.2009, 12:29
    #35766791
adv
adv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
ШыфлДата передаётся корректно... :/ Вообсче такое чувство, что параметры передаются корректно...И это видно в профайлере?

>ADO vs QA
сравните передаваемые команды там же.

зы. @dt='yyyymmdd'
...
Рейтинг: 0 / 0
20.01.2009, 14:47
    #35767162
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Глюк возникает только в том случае, если в параметры даты передать 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

Результаты разные!!! :|
...
Рейтинг: 0 / 0
20.01.2009, 16:37
    #35767547
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Суслик пустился впляс!

Посылаю через Ассесс 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 обе строки считаются правельно... Подскажите хоть слово в гугл :)
...
Рейтинг: 0 / 0
20.01.2009, 16:48
    #35767581
adv
adv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
ку или не ку?

Совет Страдалецъа пробовали?
...
Рейтинг: 0 / 0
20.01.2009, 18:02
    #35767849
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
adv,

Нефига. Изучение профайлера показало, что при передаче команды через Access (ADO) не срабатывают 2 последние инструкции процедуры (update).

Т.е. после определённой инструкции (несложный инсерт) все инструкции не проходят. Пойду спрашу MSSQLов

П.С. Ещё раз повторюсь - через QA всё работает... :(
...
Рейтинг: 0 / 0
20.01.2009, 21:45
    #35768144
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Эмпирически выяснил, что вылетает когда суммируются Null значения. Сразу же на стедующей команде... :/
Грусно как-то отлавливать все возможные Null, может может можно что-то ещё подкрутить?

Есть может есть где-нить параметр подключения? Или ещё какая магическая кнопка?
...
Рейтинг: 0 / 0
20.01.2009, 21:50
    #35768155
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Т.е. во время выполнения процедуры в QA вылетает сообщения SQL Server
Warning: Null value is eliminated by an aggregate or other SET operation.
И это сообщение завершает выполнение батча. Кто-нить сталкивался с подобным поведением?
...
Рейтинг: 0 / 0
20.01.2009, 22:09
    #35768177
adv
adv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
сначала сервиспак накатите. хотя бы третий.

потом дальше пойдём.
...
Рейтинг: 0 / 0
20.01.2009, 22:14
    #35768182
adv
adv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
ШыфлТ.е. во время выполнения процедуры в QA вылетает сообщения SQL Server
Warning: Null value is eliminated by an aggregate or other SET operation.
И это сообщение завершает выполнение батча. Кто-нить сталкивался с подобным поведением?О, так всё-таки и в qa тоже не дорабатывает.

адо вс ка...
...
Рейтинг: 0 / 0
20.01.2009, 22:17
    #35768186
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
adv,

В QA дорабатывает! А через Ассеss - нет. Вылетает при суммации null значений
...
Рейтинг: 0 / 0
20.01.2009, 22:34
    #35768203
adv
adv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
ШыфлВ QA дорабатывает! А через Ассеss - нет. Ну и сравните полные трассы для аксесса и квериэнэлайзера.
авторВылетает при суммации null значенийв смысле при группировке?

зы. сервиспак накинули?
...
Рейтинг: 0 / 0
20.01.2009, 22:56
    #35768227
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
adv,
Сервиспак накатил уже давно - всё равно не работало

Решил найти где процедура таки падает. Создал табличку log1 с 1 полем. В теле процедуры раскидал инсерты аля
Код: plaintext
1.
2.
3.
4.
insert into dbo.log1 (pozn) values ('a1')
----
insert into dbo.log1 (pozn) values ('a2')
------

Запустил.
Процедура срабатывает без ошибок там, где до этого падала...
Или лыжы не едут или одно из двух...
...
Рейтинг: 0 / 0
21.01.2009, 16:47
    #35769970
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Всё оказалось намного проще.

Процедура по ходу исполнения выдавала рекордсет (строки для которых не заполнены определённые параметры), но это происходило где-то в середине процедуры.

QA это совершенно не мешает закончить батч, а вот Access (ADO) после получения этого рекордсета начинает танцы с саблями и завершает выполнение батча преждевременно, непонятно в каком месте и непонятно по какой причине, причём без сообщения об ошибке. Батч просто заканчивался "на полуслове" так сказать - очивидно после получения рекордсета ADO cчитает миссию выполненой и закрывает соединение согласно каким-то странным способом, на что сервер отвечает прерыванием батча.

После того, как выдачу рекордсета перенёс вконец, всё работает корректно.

П.с. Когда расставлял метки, этот селект просто закоментил как несущественны. А оно возьми да и заработай. :)
...
Рейтинг: 0 / 0
21.01.2009, 16:54
    #35770000
just asking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
ШыфлВсё оказалось намного проще.

Процедура по ходу исполнения выдавала рекордсет (строки для которых не заполнены определённые параметры), но это происходило где-то в середине процедуры.

QA это совершенно не мешает закончить батч, а вот Access (ADO) после получения этого рекордсета начинает танцы с саблями и завершает выполнение батча преждевременно, непонятно в каком месте и непонятно по какой причине, причём без сообщения об ошибке. Батч просто заканчивался "на полуслове" так сказать - очивидно после получения рекордсета ADO cчитает миссию выполненой и закрывает соединение согласно каким-то странным способом, на что сервер отвечает прерыванием батча.

После того, как выдачу рекордсета перенёс вконец, всё работает корректно.

П.с. Когда расставлял метки, этот селект просто закоментил как несущественны. А оно возьми да и заработай. :)
А в процедуре есть SET NOCOUNT ON?
...
Рейтинг: 0 / 0
21.01.2009, 17:01
    #35770022
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
just asking,

Не было. Если его включить, то всё работает корректно и без исправлений.
...
Рейтинг: 0 / 0
21.01.2009, 17:07
    #35770044
just asking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
Шыфлjust asking,

Не было. Если его включить, то всё работает корректно и без исправлений.
Жаль, что поздно спросил :-)
...
Рейтинг: 0 / 0
21.01.2009, 18:09
    #35770262
VladimirKr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
just askingШыфлjust asking,

Не было. Если его включить, то всё работает корректно и без исправлений.
Жаль, что поздно спросил :-)

Блин, на эти грабли уже столько народу наступило, что можно включать такие ситуации в ФАК, имхо.
...
Рейтинг: 0 / 0
21.01.2009, 18:22
    #35770291
адв
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разные результаты одного запроса! (ADO vs QA)
just askingШыфлjust asking,

Не было. Если его включить, то всё работает корректно и без исправлений.
Жаль, что поздно спросил :-)твою маму.

Я уже и не думал, что кто-то не ставит сет нокаунт он в процедурах.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разные результаты одного запроса! (ADO vs QA) / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]