ANB » 22.10.2005 (Сб) 20:21
Проблема судя по всему или в ADO или в самом Accesse.
Судите сами:
Есть два запроса (привожу дословный текст запросов):
1)Пробный TA_Prob:
SELECT u1.TraffName AS FullName, Sum(c1.Sent) AS ISent1, Sum(c1.Received) AS IRec1, 0 AS DSent1, 0 AS DRec1, 0 AS KSent1, 0 AS KRec1
FROM all_connections AS c1, users_data AS u1
WHERE (((c1.RecDate) Like '??/10/2005'))
and (c1.UserName=u1.UName) and (u1.Vid=1)
GROUP BY u1.TraffName;
2)Нужный мне TraffAll:
SELECT u1.TraffName AS FullName, Sum(c1.Sent) AS ISent1, Sum(c1.Received) AS IRec1, 0 AS DSent1, 0 AS DRec1, 0 AS KSent1, 0 AS KRec1
FROM all_connections AS c1, users_data AS u1
WHERE (((c1.RecDate) Like '??/10/2005'))
and (c1.UserName=u1.UName) and (u1.Vid=1)
GROUP BY u1.TraffName
UNION SELECT u2.TraffName AS FullName, 0 AS ISent1, 0 AS IRec1, Sum(c2.Sent) AS DSent1, Sum(c2.Received) AS DRec1, 0 AS KSent1, 0 AS KRec1
FROM all_connections AS c2, users_data AS u2
WHERE (((c2.RecDate) Like '??/10/2005'))
and (c2.UserName=u2.UName) and (u2.Vid=2)
GROUP BY u2.TraffName
UNION SELECT u3.TraffName AS FullName, 0 AS ISent1, 0 AS IRec1, 0 AS DSent1, 0 AS DRec1, Sum(c3.Sent) AS KSent1, Sum(c3.Received) AS KRec1
FROM all_connections AS c3, users_data AS u3
WHERE (((c3.RecDate) Like '??/10/2005'))
and (c3.UserName=u3.UName) and (u3.Vid=3)
GROUP BY u3.TraffName;
Есть третий, который выбирает данные из одного из этих (собственно к нему и идет обращение из ASP) Traff_All:
SELECT FullName, Sum(ISent1) AS ISent, Sum(IRec1) AS IRec, Sum(DSent1) AS DSent, Sum(DRec1) AS DRec, Sum(KSent1) AS KSent, Sum(KRec1) AS KRec
FROM TA_Prob
GROUP BY FullName;
В самом Accesse все отлично работает при обращении как к TA_Prob, так и к TraffAll.
А вот при обращении из ASP скрипта, если идет обращение к TA_Prob - то список выдается, а если в запросе Traff_All поменять на обращение к TraffAll (в самом запросе Accessa поменять), то выдается пустой список.
Я не представляю, какая может быть ошибка в скрипте, если он все-таки работает с запросом без UNIONа.
Я предполагаю что ошибка все-таки или в том, как ADO обращается к UNION запросам Accessa, или в самом Accesse (установлен Access 97).
А может устаревшая версия ADO или Accessa (и как это проверить).