Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2009, 16:20   #1
Krechet
Пользователь
 
Аватар для Krechet
 
Регистрация: 03.12.2008
Сообщений: 76
По умолчанию Организация корректного поиска в связанных таблицах посредством SQL в Delphi

Вобщем, проблема вот в чем. У меня есть две связанные таблицы, например "Фирмы" и "Автомобили", в каждой фирме по нескольку автомобилей. Я сделал 2 таблицы, в одной чисто названия фирм, в другой автомобили, связанные с конкретной фирмой в 1-й таблице. Мне нужно организовать поиск так, чтобы результаты выводились в одном DBGrid'e в виде "Название фирмы-->Автомобиль". Пытался прописать все в одном SQL-запросе, делаю поиск, например по номеру автомобиля, ну не важно, он мне выдает результат вида: "Фирма1-Автомобиль1, Фирма2-Автомобиль1, Фирма3-Автомобиль1" и т.д. Как сделать так, чтоб корректно отображалось? Например, "Поиск--а111аа", чтоб выдало например "Фирма1--Лада а111аа", а не так, чтобы он один автомобиль расписывал по всем фирмам
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
Krechet вне форума Ответить с цитированием
Старый 09.04.2009, 19:16   #2
Minotavr_x86
Пользователь
 
Аватар для Minotavr_x86
 
Регистрация: 22.03.2007
Сообщений: 24
По умолчанию

Сделай ключевое поле например id и свяжи через него таблицы
Код:
  SELECT НазваниеФирмы,НазваниеАвтомобиля FROM Фирмы,Автомобили WHERE Фирмы.id=Автомобили.id AND НомерАвтомобиля=????
Не всё получается так, как придумал,
Но разве за это должно быть стыдно!?!
Minotavr_x86 вне форума Ответить с цитированием
Старый 09.04.2009, 19:25   #3
Krechet
Пользователь
 
Аватар для Krechet
 
Регистрация: 03.12.2008
Сообщений: 76
По умолчанию

Не помогло, проблема та же самая...
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
Krechet вне форума Ответить с цитированием
Старый 09.04.2009, 19:26   #4
Krechet
Пользователь
 
Аватар для Krechet
 
Регистрация: 03.12.2008
Сообщений: 76
По умолчанию Вот сам кусок кода:

Код:
Xmodule.AvtoQuery.Active:=False;
Xmodule.AvtoQuery.SQL.Clear;
Xmodule.AvtoQuery.SQL.Add('SELECT [Название фирмы],[Марка автомобиля], ГосНомер, Примечание');
Xmodule.AvtoQuery.SQL.Add('FROM Поставщики,[Поставщики авто]');
Xmodule.AvtoQuery.SQL.Add('WHERE Поставщики.key1=[Поставщики авто].LinkKey AND [Марка автомобиля] LIKE "%'+IndexForm.FindEdit.Text+'%"');
Xmodule.AvtoQuery.SQL.Add('OR ГосНомер LIKE "%'+IndexForm.FindEdit.Text+'%"');
Xmodule.AvtoQuery.SQL.Add('OR Примечание LIKE "%'+IndexForm.FindEdit.Text+'%"');
Xmodule.AvtoQuery.SQL.Add('OR [Название фирмы] LIKE "%'+IndexForm.FindEdit.Text+'%"');
Xmodule.AvtoQuery.Active:=True;
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
Krechet вне форума Ответить с цитированием
Старый 09.04.2009, 20:21   #5
Minotavr_x86
Пользователь
 
Аватар для Minotavr_x86
 
Регистрация: 22.03.2007
Сообщений: 24
По умолчанию

Попрбуй все что после связывания таблиц заключить в скобки
Код:
WHERE Поставщики.key1=[Поставщики авто].LinkKey AND(все остальные условия)
Не всё получается так, как придумал,
Но разве за это должно быть стыдно!?!
Minotavr_x86 вне форума Ответить с цитированием
Старый 09.04.2009, 21:57   #6
Krechet
Пользователь
 
Аватар для Krechet
 
Регистрация: 03.12.2008
Сообщений: 76
По умолчанию

Выдает ошибку: [Error] Index_form.pas(79): 'END' expected but ')' found
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
Krechet вне форума Ответить с цитированием
Старый 09.04.2009, 23:16   #7
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

Krechet, ты не понял совет Минотавра.
Xmodule.AvtoQuery.Active:=False;
Xmodule.AvtoQuery.SQL.Clear;
Xmodule.AvtoQuery.SQL.Add('SELECT [Название фирмы],[Марка автомобиля], ГосНомер, Примечание');
Xmodule.AvtoQuery.SQL.Add('FROM Поставщики,[Поставщики авто]');
Xmodule.AvtoQuery.SQL.Add('WHERE (Поставщики.key1=[Поставщики авто].LinkKey) AND ([Марка автомобиля] LIKE "%'+IndexForm.FindEdit.Text+'%" ');
Xmodule.AvtoQuery.SQL.Add('OR ГосНомер LIKE "%'+IndexForm.FindEdit.Text+'%" ');
Xmodule.AvtoQuery.SQL.Add('OR Примечание LIKE "%'+IndexForm.FindEdit.Text+'%" ');
Xmodule.AvtoQuery.SQL.Add('OR [Название фирмы] LIKE "%'+IndexForm.FindEdit.Text+'%" )');
Xmodule.AvtoQuery.Active:=True;
Антон Ю.Б. вне форума Ответить с цитированием
Старый 10.04.2009, 06:47   #8
Krechet
Пользователь
 
Аватар для Krechet
 
Регистрация: 03.12.2008
Сообщений: 76
По умолчанию

Сейчас в ДБГриде вообще ничего не отображается... Я думаю проблема где-то глубже, но все свои варианты я уже исробовал
При установке Линукс не пострадало ни одного пингвина... Зато пострадало много дятлов..
Krechet вне форума Ответить с цитированием
Старый 10.04.2009, 08:04   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
он мне выдает результат вида: "Фирма1-Автомобиль1, Фирма2-Автомобиль1, Фирма3-Автомобиль1" и т.д. Как сделать так, чтоб корректно отображалось?
А что ты называеш "корректным отображением"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.04.2009, 16:40   #10
Minotavr_x86
Пользователь
 
Аватар для Minotavr_x86
 
Регистрация: 22.03.2007
Сообщений: 24
По умолчанию

Krechet, а можешь дать кусок базы. Много качать не буду инет дорогой. Мне кажется у тябя в базе ошибки.
Не всё получается так, как придумал,
Но разве за это должно быть стыдно!?!
Minotavr_x86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организация поиска) insomnia87 Microsoft Office Excel 9 22.01.2009 11:56
проблема с SQL-запросом в связанных таблицах kopernik21187 Общие вопросы Delphi 5 16.09.2008 10:33
Организация поиска с выводом инфы в форму Алина_Алина Microsoft Office Excel 3 16.05.2008 23:20
Организация поиска с помощю Полей со списком Ice_Juice Microsoft Office Access 1 16.03.2008 01:26