![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Здравствуйте!!!
Вот посмотрите: у меня есть форма, на которой DBGrid1, ADOQuery1, DataSource1, DataSource2, DBLookupComboBox1 и кнопка Button1: http://www.programmersforum.ru/attac...5&d=1292482849 Помогите пожалйста с запросом: нужно в 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 = 'В. Пелевин'Помогите пожалуйста!!! |
|
#2
|
|||
|
|||
|
Не пускает на тот форум!
Регится надо!DBLookupComboBox1 - на какой кверик ссылается? |
|
#3
|
|||
|
|||
|
Вообщем примерно выглядит так:
есть таблица авторов (id, avtor) (автор же может много книг написать, так зачем нам дублировать?!) в таблице kniga поле автор в лес отправляем, и заменяем его на idAvtor к ней обращается кверик1 (Select id, avtor from SprAvtor order by avtor) Датасоурсе1= кверик1 DBLookupComboBox1=Датасоурсе1 DBLookupComboBox1.keyfield=id 2 раза щелкаем по квери1 открывается редактор полей добавляем все поля. в квери 2 пишем запрос ( SELECT TOP 1000 [id_kniga] ,[name_kniga] ,[avtor] ,[stranic] ,[izdatel] ,[god_izdan] ,[cena] ,[id_postav] FROM [book].[dbo].[kniga] k LEFT JOIN SprAvtor s on s.Id=k.IdAvtor WHERE IdAvtor=:id в Датасоурсе для квери 2 проставляем датасоурсе1 датасоурсе2=квери2 дбгрид=датасоурсе2 где то так ![]() |
|
#4
|
||||
|
||||
|
О_О D: вот это даа... ну ладно, я попытаюсь так сделать
)) Спасибо!)) |
|
#5
|
||||
|
||||
|
Вот та картинка:
http://i050.radikal.ru/1012/fb/2c72abda72d3.jpg |
|
#6
|
||||
|
||||
|
Или если так, написать поиск для Edit1:
http://s011.radikal.ru/i317/1012/42/fbc1d70432e9.jpg Только у меня почему-то не работает и появляется такая ошибка: http://s015.radikal.ru/i330/1012/1c/d30f3e7433c2.jpg А вот эта процедура: Код:
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
with ADOQuery1 do begin
Close;
//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+'%'));
SQL.Add('name_kniga');
Open;
end;
end; |