Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > запрос на выборку


Автор: malayka 17.6.2010, 22:28
добрый вечер!
Код

datamodule1.adoquery1.sql.Clear;
datamodule1.adoquery1.SQL.add('select Отделения.Отделение, Специальности.Специальность, Группы.Группа, Студент.Фамилия, Студент.Имя, Студент.Отчество, Студент.кодстудента,Студент.ДатаРождения, Студент.Мобильник');
datamodule1.adoquery1.SQL.add('FROM (Отделения INNER JOIN Специальности ON Отделения.КодОтделения = Специальности.КодОтделения) INNER JOIN (Группы INNER JOIN Студент ON Группы.КодГруппы = Студент.КодГруппы) ON Специальности.КодСпециальности = Группы.КодСпециальности');
datamodule1.adoquery1.SQL.add('where группы.группа ='+#39+DBLookupComboBox1.Text+#39);
datamodule1.adoquery1.SQL.add('and студент.фамилия ='+#39+Edit1.Text+#39);
datamodule1.adoquery1.SQL.add('and студент.имя ='+#39+Edit2.Text+#39);
datamodule1.adoquery1.SQL.add('and студент.отчество ='+#39+Edit3.Text+#39);
datamodule1.adoquery1.open;


вот данный запрос находит результат только в том случае, если все параметры совпадут, а если вместо and брать or, параметры работают по отдельности, тоже не вариант. вот как сделать, чтобы ввел, допустим, 2 значения, и выбирались бы только те записи, в которых эти значения имеются??

Автор: Akella 17.6.2010, 22:30
так проверяй, что и куда ввёл пользователь и строй запрос динамически, в чем проблема.

Автор: malayka 17.6.2010, 22:43
 smile 

Автор: malayka 17.6.2010, 23:18
надеюсь я вас правильно понял)
Код

datamodule1.adoquery1.sql.Clear;
datamodule1.adoquery1.SQL.add('select Отделения.Отделение, Специальности.Специальность, Группы.Группа, Студент.Фамилия, Студент.Имя, Студент.Отчество, Студент.кодстудента,Студент.ДатаРождения, Студент.Мобильник');
datamodule1.adoquery1.SQL.add('FROM (Отделения INNER JOIN Специальности ON Отделения.КодОтделения = Специальности.КодОтделения) INNER JOIN (Группы INNER JOIN Студент ON Группы.КодГруппы = Студент.КодГруппы) ON Специальности.КодСпециальности = Группы.КодСпециальности');
datamodule1.adoquery1.SQL.add('where группы.группа='+#39+DBLookupComboBox1.Text+#39);
if edit1.Text<>'' then
datamodule1.adoquery1.SQL.add('and студент.фамилия=' +#39+edit1.Text+#39);
datamodule1.adoquery1.open;


так вроде пашет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)