| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > 2 Join-а в Query |
| Автор: eXcoder 1.3.2006, 05:59 | ||
| День добрый. Работаю через ADO с DBF'ами. Объединяю 3 таблицы. Пишу в ADOQuery.SQL :
в SQL Suery Analyzer от SQL SERVER 2000 все проходит на ура. IDE говорит, что: " Ошибка синтаксиса (пропущен оператор) в выражении запроса 'arc_acc.TNUM = cardspri.TNUM LEFT OUTER JOIN Licschet ON Licschet.xFIO = (cardspri.FAM+" "+cardspri.NAME+" "+cardspri.PATR)' " Как выйти из ситуации? |
| Автор: SergeBS 1.3.2006, 11:36 |
| Апострофы посмотри - в Delphi надо удваивать, т.е. SQL select * where a = 'blabla-bla' and b = 1 В IDE: var s : string; s := 'select * where a = ''blabla-bla'' and b = 1'; И так же - в Query и т.п. |
| Автор: CaNIBaLchik 1.3.2006, 11:55 |
| join -ы они вообще раздувают кортежы, любои join можно заменить and - ом |
| Автор: SergeBS 1.3.2006, 16:15 | ||
CaNIBaLchik,
Шутник. eXcoder, Вдогонку: ParamCheck -> false Prepared -> false |
| Автор: ТоляМБА 3.3.2006, 12:00 | ||||
| Была у меня похожая проблема – 3 таблицы и два джоина. Не знаю поможет в твоем случае или нет, но всё же. Есть у меня в MS-SQL Server три таблицы: Liter, LiterLang, Landg LiterID,----------LiterID, LangName LiterName, LangID,----------------LangID Надеюсь так структура понятна. Был запрос:
Прокатывал на ура. Импортнул в dBase IV. В Делфях ошибка: Ошибка синтаксиса (пропущен оператор) в выражении запроса 'LiterLang.LiterID = Liter.LiterID INNER JOIN Landg ON LiterLang.LangID = Landg.LangID' Мои действия: 1. Создал пустую базу Access 2. Импортнул в нее все таблы 3. Вставил в неё этот же запрос – оппа, тоже самое сообщение об ошибке. Ну, думаю, а какже акцесс-то связывает свои таблы? Захожу в схему данных и создаю связи (см. выше) перед этим поставив ключевые поля в Liter и в Lang. Захожу в запросы «Создание запроса в режиме конструктора», добавляю все три таблы – все связи сразу показались, помечаю соотв. поля на вывод, жму на просмотр – выдает те же данные что и на MS-SQL Server! С замиранием жму на «Режим SQL» - вижу запрос:
Цепляю его, ложу в ADOQuery1. Открываю – всё работает. |
| Автор: Vit 3.3.2006, 16:06 |
| Заменить двойные кавычки на одинарные, но удвоенные |