![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не выполняется запрос! [D6, dBase, FoxPro]
paule © (2005-06-08 15:07:00)Уважаемые подскажите пожалуйста.
Нужен большой запрос. Выполняю его с помощью ADOQuery.
...
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('select t.*,w.x,td.* from temp t inner join whatisx w on w.os=t.oes and w.st=t.st and w.tipst=t.tipst
inner join techdata td on td.tipst=t.tipst');
ADOQuery.Open;
...
Но выполняться не хочет.Пишет следующую ошибку:
"Ошибка синтаксиса(пропущен символ) в выражении запроса"
Однако стоит сократить запрос до такого:
ADOQuery.SQL.Add('select t.*,w.x from temp t inner join whatisx w on w.os=t.oes and w.st=t.st and w.tipst=t.tipst');
и работает всё прекрасно!
Скажите пожалуйста отчего возникает ошибка.База dBASE 4.
paule (2005-06-08 17:24:00) [1]sniknik, спасибо ваш вариант тоже сработал!
paule (2005-06-08 17:21:00) [2]Silver Alex, спасибо заработало!
Даже не знал что так можно!
Silver Alex (2005-06-08 17:03:00) [3]можно еще вот так, вроде тоже самое
select t.*,w.x,td.* from temp t , whatisx w, techdata td
where
w.os=t.oes
and w.st=t.st
and w.tipst=t.tipst
and td.tipst=t.tipst
sniknik (2005-06-08 15:46:00) [4]select t.*,w.x,td.* from (temp t inner join whatisx w on w.os=t.oes and w.st=t.st and w.tipst=t.tipst) inner join techdata td on td.tipst=t.tipst
возможно
sniknik (2005-06-08 15:39:00) [5]от движка к движку(/SQL server-у) правила весьма сильно изменяются...
и без этого тайного знания (движок (???)) любые подсказки будут "пальцем в небо".
paule (2005-06-08 15:28:00) [6]P.N.P., так тоже не работет, я пробовал
sniknik, запрос написан правильно. Только может просто сама dBase такую конструкцию не поддерживает. Тогда ктонить подскажите как правильно?
sniknik (2005-06-08 15:22:00) [7]проблема не в размере запроса а в синтаксисе (в ошибке явно указано). второй джойн написан не по правилам.
P.N.P. (2005-06-08 15:19:00) [8]Это разве большой запрос? :)
Попробуй так:
ADOQuery.SQL.Add('select t.*,w.x,td.* from temp t inner join whatisx w on w.os=t.oes and w.st=t.st and w.tipst=t.tipst');
ADOQuery.SQL.Add('inner join techdata td on td.tipst=t.tipst');