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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2010, 10:10   #1
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
Восклицание Запрос выборки

Здравствуйте!!!
Вот посмотрите: у меня есть форма, на которой
DBGrid1, ADOQuery1, DataSource1, DataSource2, DBLookupComboBox1 и кнопка Button1:
Безымянный.jpg

Помогите пожалйста с запросом: нужно в SQL для ADOQuery1 написать запрос, который бы оставлял в BDGrid1 только те поля, которые относятся к выбранному из вариантов в DBLookupComboBox1,
т.е. осуществить поиск по автору при нажатии кнопки Button1.

Если обычный запрос выборки, то он выглядит так ведь:
(например оставить только Пелевина)
Код:
SELECT TOP 1000 [id_kniga]
      ,[name_kniga]
      ,[avtor]
      ,[stranic]
      ,[izdatel]
      ,[god_izdan]
      ,[cena]
      ,[id_postav]
  FROM [book].[dbo].[kniga]
  WHERE avtor = 'В. Пелевин'
Но тут же наверное нужен с переменными запрос?
Помогите пожалуйста!!!
Asblue вне форума Ответить с цитированием
Старый 17.12.2010, 08:42   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Красиво обьяснил))
a datasource2 тоже к Adoquery1 привязан? если да, то после первого же запроса с параметром там останется только список из одного и тогоже автора.
по теме
Код:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT TOP 1000 [id_kniga]');
ADOQuery1.SQL.Add(' ,[name_kniga]');
ADOQuery1.SQL.Add(' ,[avtor]');
ADOQuery1.SQL.Add(',[stranic]');
ADOQuery1.SQL.Add(',[izdatel]');
ADOQuery1.SQL.Add(',[god_izdan]');
ADOQuery1.SQL.Add(',[cena]');
ADOQuery1.SQL.Add(',[id_postav]');
ADOQuery1.SQL.Add('FROM [book].[dbo].[kniga]');
ADOQuery1.SQL.Add('WHERE avtor = :autor_');
ADOQuery1.Parameters.ParamByName('autor_').Value:=DBComboBox1.Text;
ADOQuery1.Open;
vovk вне форума Ответить с цитированием
Старый 17.12.2010, 10:36   #3
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию

Спасибо большое Вам!
Asblue вне форума Ответить с цитированием
Старый 17.12.2010, 13:23   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
при нажатии кнопки Button1.
А почему при нажатии? Может проще сразу при изменении значения в этом компоненте?
Цитата:
TOP 1000
А зачем это тут? А если их больше будет?
Цитата:
Красиво обьяснил))
Объяснила. ))))
P.S. Вот если бы все так старались...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.12.2010, 17:25   #5
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
Радость


Я вообще сделала через DBEdit1 поиск через процедуру
Код:
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
with ADOQuery1 do begin
active:=false;
SQL.Clear;
SQL.Add('SELECT DISTINCT id_kniga,name_kniga,avtor,stranic,izdatel,god_izdan,cena,id_postav FROM kniga');
SQL.Add('WHERE avtor LIKE'+quotedstr(Edit1.text+'%'));
active:=true;
end;
end;
Так что всё нормально

Только теперь у меня другая проблема:
Как сделать, чтоб при выборе определённого названия книги в DBEdit1 при нажатии OK присваивалось соответствующее значение id_kniga?
В DBLookupComboBox1 - выбираются данные из поля name_kniga таблицы kniga.
Вот здесь сё изображено: http://s004.radikal.ru/i206/1012/3c/e4f9884ea137.jpg

___________________________________ ___________________________________ __________________
А вообще, спасибо вам всем огромное за то, что вы есть, потому что без вас я бы нифига не сделала и ничего не знала... )))))))))
Asblue вне форума Ответить с цитированием
Старый 17.12.2010, 17:33   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Я вообще сделала через DBEdit1 поиск через процедуру
Дело ваше.
Цитата:
Только теперь у меня другая проблема:
Как сделать, чтоб при выборе определённого названия книги в DBEdit1 при нажатии OK присваивалось соответствующее значение id_kniga?
В DBLookupComboBox1 - выбираются данные из поля name_kniga таблицы kniga.
Вот здесь сё изображено: http://s004.radikal.ru/i206/1012/3c/e4f9884ea137.jpg
Другой вопрос= другая тема
vovk вне форума Ответить с цитированием
Старый 17.12.2010, 17:45   #7
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию

vovk, ну Ok
Asblue вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать запрос выборки из нескольких таблиц skilk SQL, базы данных 10 03.03.2012 10:47
генерация выборки Ivan111 Общие вопросы C/C++ 0 09.12.2010 18:10
как составить sql запрос для выборки по имени,фамилии и отчеству betirsolt БД в Delphi 8 12.05.2010 22:44
Выборки из бд Lokos БД в Delphi 6 15.12.2009 15:20
Построение выборки Pankratyeva Microsoft Office Excel 3 09.02.2009 15:45