![]() |
|
|
![]()
|
|
| eXcoder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 26.2.2006 Репутация: нет Всего: нет |
День добрый. Работаю через 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)' " Как выйти из ситуации? Это сообщение отредактировал(а) eXcoder - 1.3.2006, 06:04 |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Апострофы посмотри - в 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 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 8.2.2006 Где: Томск Репутация: нет Всего: нет |
join -ы они вообще раздувают кортежы, любои join можно заменить and - ом
|
|||
|
||||
| eXcoder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 26.2.2006 Репутация: нет Всего: нет |
||||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
CaNIBaLchik,
Шутник. eXcoder, Вдогонку: ParamCheck -> false Prepared -> false |
|||
|
||||
| ТоляМБА |
|
||||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
Была у меня похожая проблема – 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 |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Заменить двойные кавычки на одинарные, но удвоенные
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |