Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.12;
Скачать: CL | DM;

Вниз

Вопрос по ADOQuery   Найти похожие ветки 

 
BillyJeans   (2006-02-21 13:54) [0]

Почему выполнение следующего кода:

ADOQuery.SQL.Clear;
ADOQuery.SQL.Add("SELECT Table1.*, Table2.Name AS Name, Table3.X AS X");
ADOQuery.SQL.Add(" FROM Table1 LEFT JOIN Table2 ON Table1.RouteID = Table2.ID ");
ADOQuery.SQL.Add(" LEFT JOIN Table3 ON Table1.StopID = Table3.ID ");
ADOQuery.SQL.Add(" WHERE RouteID="+IntToStr(Value));
ADOQuery.SQL.Add(" ORDER BY Table1.SOrder");
ADOQuery.Open;

Выдает сообщение об ошибке:
Ошибка синтаксиса (пропущен оператор) в выражении запроса "Table1.RouteID = Table2.ID LEFT JOIN Table3 ON Table1.StopID = Table3.ID"
?


 
msguns ©   (2006-02-21 14:01) [1]

..FROM Table1 LEFT JOIN Table2 ON (Table1.RouteID = Table2.ID)..


 
msguns ©   (2006-02-21 14:03) [2]

Ооо.. Да это еще не все..
Для объединения с более чем одной таблицей надо использовать вложенный (через "()") джоин


 
BillyJeans   (2006-02-21 14:23) [3]

приведи пример вложенного джоин


 
BillyJeans   (2006-02-21 14:25) [4]

MySQL проглатывает эту запись на ура, а вот ADO в связке с Access плюётся :-(


 
msguns ©   (2006-02-21 14:31) [5]

Не пишу в этот форум готовых сиквелей. Принципиально.
Подскажу: вложенные джоины делаются аналогично вложенным селектам.

"Тренеруй" сиквели в самом акцесе - будет быстрее.


 
BillyJeans   (2006-02-21 14:42) [6]

Так джоин то не вложенный... В запросе требуется добавить к полям одной Table пару полей из других, вот!
Access суксь, сам и тренируй


 
msguns ©   (2006-02-21 15:06) [7]

>BillyJeans   (21.02.06 14:42) [6]
>Так джоин то не вложенный..

Правильно. Ты [2] читал ?
Если используешь акцес, то и подходи к нему с его заморочками, а не мускульными.

Написать запрос типа

Select A.*, B.Pole From (Select .. From T1 .. Left Join T2 On (T1.id=T2.id)) A
  Left Join T3 On (A.id=T3.id))

а потом "преобразовать" его в единственному селекту, но вложенному джоину слабо ?
Проверить работу запроса можно в самом акцесе. Если он там пройдет, почти гарантия, что его "возьмет" и ADO



Страницы: 1 вся ветка

Текущий архив: 2006.03.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
15-1140415377
Ega23
2006-02-20 09:02
2006.03.12
С Днём рождения! 20 февраля


1-1139472708
DimaBr
2006-02-09 11:11
2006.03.12
Список компонентов


11-1118770848
Владимир Кладов
2005-06-14 21:40
2006.03.12
Новая версия


2-1140553896
Wel
2006-02-21 23:31
2006.03.12
TImage


2-1140889474
Vitalik__
2006-02-25 20:44
2006.03.12
Неподскажите как сделать паузу 1 сек в программе?