C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
DBF->ODBC -> SQL (несколько JOIN), Как добавить второй/третий JOIN ?
gen
Отправлено: 03.02.2007, 13:28


Дежурный стрелочник

Группа: Участник
Сообщений: 36



Привет.

Есть необходимость обращаться к DBF через ODBC (Microsoft dBase Driver (*.dbf)). Столкнулся с проблемой в запросе с несколькими внешними JOIN. Запрос такой
SQL
select p.*,k.FLD1, k.FLD2,t.NAME1,t.NAME2 from Tabel1 p LEFT OUTER JOIN Tabel2 k ON (p.KEY=k.KEY) LEFT OUTER JOIN TABEL3 t ON (p.KEY=t.KEY)

При прямом подключении или через BDE (STANDARD driver dbase) все нормально, а через ODBC — получаю "General SQL error" или (при подлючении посредством ADO) — ошибку "отсутствует оператор в выражении (p.KEY=k.KEY) LEFT OUTER JOIN". Если убрать второй JOIN проблема уходит. Похоже при работе через ODBC несколько другой синтаксис добавления последующих объединений. Может кто знает как?
Предложение обойтись без ODBC не подходит, т.к. запрос выполняется не из сред Borland и там такой выриант подключения единственный.

Спасибо.
gen
Отправлено: 06.02.2007, 12:38


Дежурный стрелочник

Группа: Участник
Сообщений: 36



Пробовал так:
SQL
select p.*,k.FLD1, k.FLD2,t.NAME1,t.NAME2 from {OJ {OJ Tabel1 p LEFT OUTER JOIN Tabel2 k ON (p.KEY=k.KEY)} LEFT OUTER JOIN TABEL3 t ON (p.KEY=t.KEY)}

Все равно более. чем с одним объединением работать никак не хочет. Придеться пока обходить путем нескольких последовательных запросов.
BlackFox
Отправлено: 14.02.2007, 13:57


Ученик-кочегар

Группа: Участник
Сообщений: 8



Насколько я помню в этой СУБД нет join'ов
можно использовать объединение в блоке where

Вернуться в Работа с базами данных в C++Builder