![]() |
|
|
Регистрация | << Правила форума >> | 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; |