powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разные результаты одного запроса! (ADO vs QA)
24 сообщений из 24, страница 1 из 1
Разные результаты одного запроса! (ADO vs QA)
    #35765947
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в шоке, битый час мучаюсь, но генератор идей на нуле...

Решили мы перенести логику на сервер. Написали процедуру, которая получает параметры с формы и заполняет нужные таблички, из которых форма потом забирает данные вьюхой. Всё замечательно, только считает не правельно. Причём вся фишка в том, что если запустить процедуру из 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
Разные результаты одного запроса! (ADO vs QA)
    #35765955
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Шыфла если передать туже самую строчку чарез ADO, то не работает.
Как именно не работает, надо угадать?
...
Рейтинг: 0 / 0
Разные результаты одного запроса! (ADO vs QA)
    #35766008
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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