|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.04.2009, 23:17 | #1 |
Пользователь
Регистрация: 26.01.2009
Сообщений: 48
|
SQL запрос для поиска в связаных таблицах.
Как задать запрос на поиск если таблицы связаны, но не находятся в одной базе?
Т.Е. На форме лежат два ADOConnection, два ADOQuery и два DataSourse. Один комплект подключен к DB1.mdb, а второй к DB2.mdb. И в ADOQ1 добавлены поля по lookup из ADOQ2 контачат по Key1 -> LKey. Не могу задать запрос на поиск в ADOQ1 полей добавленых из ADOQ2. Выдает ошибку типа: Параметр "НАЗВАНИЕ ПОЛЯ" не является значением по умолчанию. пишу стандартно DataModule1.ADOQ1.SQL.ADD('SELECT *'); DataModule1.ADOQ1.SQL.ADD('FROM [База заказов]'); DataModule1.ADOQ1.SQL.ADD('WHERE Фамилия LIKE ''%' + (Edit1.Text) +'%''' ); Поле фамилия добавлено из ADOQ2. может кто подскажет? |
16.04.2009, 23:46 | #2 |
Редкий обитатель
Форумчанин
Регистрация: 08.04.2009
Сообщений: 170
|
создай в одной базе представление на таблицу из другой, и работай только с одной (если конечно в Access есть такое).
хотя всеравно, то что записано в тексте запроса ищется в самой базе, а связал ты эти таблицы не там, а в проге, так что поиск придется осуществлять не запросом, а средствами компонентов (непомню есть ли такое в ADO, но например в ClientDataSet есть свойство Filter). Кстати а почему б ы тебе не использовать ClientDataSet, так проще, вначале пргои загрузил в него данные из двух баз, в процессе работаешь в только с ним одним, а в конце просто распихиваешь изменения по базам
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
Последний раз редактировалось koma_grusha; 16.04.2009 в 23:54. |
17.04.2009, 09:02 | #3 |
Форумчанин
Регистрация: 29.01.2009
Сообщений: 411
|
Посмотри вот эту тему
http://programmersforum.ru/showthread.php?t=45417, может наталкнет на мысль. А вообще как сказал koma_grusha сделай в Access связные таблицы, тогда тебе не нужно будет второе подключение. |
17.04.2009, 22:30 | #4 |
Пользователь
Регистрация: 26.01.2009
Сообщений: 48
|
Неужели нельзя осуществить запрос, если таблицы находятся в двух разных файлах?
Последний раз редактировалось Хитрец; 18.04.2009 в 00:12. |
18.04.2009, 01:42 | #5 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
Хитрец, а нельзя импортировать таблицы из одной бд в другую? и гемора было бы меньше и стабильность работы лучше была бы.
|
18.04.2009, 02:02 | #6 |
Пользователь
Регистрация: 26.01.2009
Сообщений: 48
|
Сделать это можно, но хотелосьбы оставить две независымые базы. Просто очень странно должет же быть способ работать с одтельными базами по sql запросам...
Правда чёто инфы по этому вопросу ноль. Может есть какой вертуальный способ объединения, чтобы программа вроде как считала, что база находится в одном файле? |
18.04.2009, 02:30 | #7 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Вероятнее всего ошибка Параметр "НАЗВАНИЕ ПОЛЯ" не является значением по умолчанию выдается потому что данного поля AdoQuery просто не видит (для него оно может не существовать если не прописано в Fields Editor, бывает если нарушен порядок следования полей в запросе). Поэтому проверь сначала в SQL запросе порядок следования полей (как в базе Access), а уже потом добавляй в Field Editor. Может покажется странным, но сталкивался с таким.
Ошибка выдаваемая тебе при запросе (где говорится о параметрах) никакого отношения к ним наверное не имеет, просто это говорит о несуществовании данного поля, поэтому он думает, что это параметр. Данный код должен работать: Код:
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
18.04.2009, 02:35 | #8 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Если несложно просто сделай проект (шаблон) в Дельфи 7 и размести на форуме. Базы Access естественно пустые, и ничего лишнего, только комноненты для связи с базами и твой вариант запроса, который не получается и в комментариях, что именно хочется получить.
Тогда наверное получше будет понять в чем ошибка.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
18.04.2009, 10:01 | #9 |
Пользователь
Регистрация: 26.01.2009
Сообщений: 48
|
То что ты написал подходит только если обе баз находятся в одном файле, у меня же др. ситуация файлов баз две. И
Вот примерчик нужно произвести сортировку(ПОИСК) по полю ИМЯ в ADOQuery1. Последний раз редактировалось Хитрец; 18.04.2009 в 10:03. |
18.04.2009, 11:29 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Хитрец, а что если поступить так:
создать третью БД, где первые две вставить как связанные! и дальше работать через эту третью БД. p.s. самому проверять сейчас некогда — надо яйца красить, к Пасхе готовиться.. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Организация корректного поиска в связанных таблицах посредством SQL в Delphi | Krechet | БД в Delphi | 9 | 10.04.2009 16:40 |
Поиск в 2-ух таблицах через запрос | icome | Microsoft Office Access | 3 | 26.08.2008 18:14 |
Как редактировать дату в связаных таблицах ADO | Alexsandr | БД в Delphi | 1 | 27.05.2008 09:38 |
Синтаксис SQL-запроса для поиска по дате... | Рустам | БД в Delphi | 13 | 06.04.2008 15:55 |
Удаление в связаных таблицах ADO | Alexsandr | БД в Delphi | 7 | 18.02.2008 23:15 |