|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
SQL Запрос выборки
Здравствуйте!!!
Вот посмотрите: у меня есть форма, на которой 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; |
#7
|
|||
|
|||
Из ппервого скрина ниче не понял!
про ошибку правильно пишет, а че эт у вас поле просто так написано что то пропустили подозреваю Order by Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#8
|
||||
|
||||
А, всё, в общем исправила, теперь нормально ))
|
#9
|
||||
|
||||
Только теперь у меня в таблицу Покупатели не добавляются покупатели.
Она связана с таблицей Банк id_bank. Вот здсь должно быть всё понятно, ошибки снова: http://s46.radikal.ru/i112/1012/d9/13287039239d.jpg P.S. В табл. "Банки" id_bank - ключ и счётчик, в табл. "Покупатели" id_bank тоже счётчик... но потом я убрала его, а ключ - inn_pokup. Связаны эти две таблицы - id_bank. Последний раз редактировалось Bloo, 17.12.2010 в 00:48. |
#10
|
|||
|
|||
вот именно по таким проблемам и не люблю Foreign key
а в покупатели вы в поле id_bank пишете ID которой нет в таблице банков? так? Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#11
|
||||
|
||||
Да, так!))
|
#12
|
|||
|
|||
ну так вот он и ругается на ссылочную целостность
т.к. у вас установлен внешний ключ, то в поле id_bank должно быть значение которое есть в таблице банков. Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#13
|
||||
|
||||
да. только я к сожалению не могу вписать в поле id_bank никаких значений. Это наверное из-за того, что id_bank установлен, как счётчик?
|
#14
|
|||
|
|||
он не должен быть счетчиком, должен быть просто целым значением.
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#15
|
||||
|
||||
Да, в общем теперь получилось СПАСИИИБО БОЛЬШОЕ, ВАМ!!! ))
|