Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Через ADO не работает SQL запрос в Access, из Access нормально.. [D7]


Layner ©   (2005-10-10 09:25:00) 

В общем ничего сложного, запрос из Access проходит на ура:
SELECT t1.*,
(SELECT SUM(t2.kolvo) FROM t2 WHERE t2.rid=t1.rid) AS fffff
FROM t1
WHERE f1=10
ORDER BY t1.date DESC

Тот же, но в ADOQuery пищет ошибку E_FAIL... Если убрать поле fffff, все нормально, или даже не убирать, а просто вписать
5 AS fffff
Тоже все нормально...
Подскажите, это ADOQuery не понимает вложенные запросы?


Fay   (2005-10-10 15:45:00) [1]

2 msguns ©   (10.10.05 15:23) [5]
>> Ага, они такие разные-разные ;)))
Разные. Это меня радует, но ничего смешного в этом не вижу.


msguns   (2005-10-10 15:23:00) [2]

>Fay ©   (10.10.05 14:41) [4]
>Не могу согласиться с тем, что Access и мой любимы MSSQL объединяют какие-то глюки! >8-(

Ага, они такие разные-разные ;)))


Fay   (2005-10-10 14:41:00) [3]

2 msguns ©   (10.10.05 11:45) [3]
Не могу согласиться с тем, что Access и мой любимы MSSQL объединяют какие-то глюки! >8-(
Скажу только, что запросы вида select * ...действительно глюгогенны.
Целевой сервер не имеет значения.


msguns   (2005-10-10 11:45:00) [4]

Дело в тупом использовании "*" в выборке из вложенного запроса с агрегатами. Аксцес при обработке агрегатных запросов создает НД с неименованными (точнее бланковыми) колонками агрегатов (в этом нетрудно убедиться, посмотрев полученный НЛ в самом акцесе) и если "внешний" запрос перечисляет все колонки для вывода (*), в т.ч. и "пустую" агрегатную, то при его выполнении "спотыкается" при обнаружении первой же "бланковой". Поэтому во вложенных запросах всем calc-полям, в т.ч. агрегатным, надо присваивать псевдонимы.
Кроме того, запросы SELECT * FROM (SELECT.. хранят в себе потенциальные глюки. Это касается не только Акцесс, но и MS SQL


Layner   (2005-10-10 09:33:00) [5]

Тогда ничего не понимаю, на чем слетает.. Может одинаковые поля где есть, сейчас поищу, разделю... Хотя ADOQuery на пофиг все что проходит в запросах в Access. Например с ф-й nz(т.е. аналог ISNULL.). Низачто не проходит в ADOQuery .. Я думаю, может и сдесь такой же случай?


Fay   (2005-10-10 09:29:00) [6]

2 Layner ©   (10.10.05 9:25)
ADOQuery пофиг.


Наверх

Титульная страница Поиск, карта сайта Написать письмо