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

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

Игнорирование строк запроса к таблице [Access2000]


SelfDestructor ©   (2002-01-30 18:28:00) 

Чудес не бывает, помогите разобраться:
В базе есть 2 таблицы, связанные по одному полю.
Таблица Report содержит поля id и mba_id (остальные поля роли не играют), таблица mba содержит поля id, code.
В каждой из таблиц находится по две записи:
Report
id mba_id
1 3
2 4

MBA
id code
3 001
4 002

Запрос
select mba.code,
report.id
from report, mba
where mba.id = report.mba_id

в компоненте TADOQuery выбирает 4(!!!) записи, а именно скалярное произведение этих таблиц
выполнил тот же запрос в аксессе - всё нормально, две записи.
Долго мучился, переписывал запрос кучу раз. В итоге загнал запрос в одну строку - заработало. Фантастика, ведь в кучу других мест запросы, написанные в несколько строк работали и работают великолепно. Кто нибудь сталкивался с подобным? Мне интересно узнать объяснение подобного "чуда".


SelfDestructor   (2002-01-31 14:13:00) [1]

Аус, спасибо за отклик. Я сделал запрос опять многострочным и всё работало так как надо. Но тогда, когда не работало, я готов дать голову на отсечение, что строка
where mba.id = report.mba_id
у меня была и написана была правильно. Может быть дело в каких-нибудь спецсимволах, который каким-то образом проникли в запрос?


aus   (2002-01-31 00:36:00) [2]

Специально проверил все точно как у тебя описанно, получил тот же результат, что и в Access, т.е. 2 записи.
Ты проверь хорошо, может быть строка
where mba.id = report.mba_id
в твоем запросе отсутствует?


Наверх

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