![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() ЗДравствуйте!
Помогите пожалуйста. БД - журнал для школьников с полями: ФИО, четверти и экзамен. Нужен SQL запрос, чтобы введя условия выборки в соответствующие едиты, по нажатию кнопки результат отображался в гриде. Понимаю что это самое простетское, но сам я никогда наверно в это не вьеду ![]() Заранее спасибо! =) |
#2
|
||||
|
||||
![]() Считаем, что на форме есть 3 едита (Edit1,Edit2,Edit3).
Считаем, что на форме есть DBGrid1 который связан с AdoQuery1. Считаем, что на форме есть кнопка (Button1) по нажатию которой отрабатывается запрос. Тогда событие этой кнопки будет таким: Код:
procedure TForm1.Button1Click(Sender: TObject); begin AdoQuery1.Close; AdoQuery1.SQL.Text := 'select * from Journal where Field1=:Edit1 and Field2=:Edit2 and Field3=:Edit3'; AdoQuery1.Parameters.ParamValues['Edit1'] := Edit1.Text; AdoQuery1.Parameters.ParamValues['Edit2'] := Edit2.Text; AdoQuery1.Parameters.ParamValues['Edit3'] := Edit3.Text; AdoQuery1.Open; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Извине я забыл сказать что использую TQuery (DBTables).
мне вот посоветовали использовать такой код Код:
procedure TForm1.Button1Click(Sender: TObject); begin with Query1 do begin Close; SQL.Clear; SQL.Add('SELECT *'); SQL.Add('FROM "jurnal.db"'); SQL.Add('WHERE'); SQL.Add('(FIO = ''' +edit1.text + ''')'); SQL.Add('(Klass = ''' +edit2.text + ''')'); SQL.Add('ORDER by FIO'); Open; end; Не могли бы вы сказать что не так. И еще вопросик) хотелось бы еще чтобы результат выводился даже при неполном наборе ФИО в едите. |
#4
|
||||
|
||||
![]() отсутствует оператор and между условиями, должно быть так:
Код:
SQL.Add('(FIO = ''' +edit1.text + ''') and '); SQL.Add('(Klass = ''' +edit2.text + ''')'); Код:
SQL.Add('(FIO like ''' +edit1.text + '*'+''') and '); SQL.Add('(Klass = ''' +edit2.text + ''')'); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
||||
|
||||
![]() like без %% использовать бесполезно.
Код:
SQL.Add('(FIO like ''%' +edit1.text + '%'') and '); SQL.Add('(Klass = ''' +edit2.text + ''')'); И их с обеих сторон надо лепить. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#6
|
||||
|
||||
![]() У него парадокс, потому не процент а звездочка, смотрите внимательнее мой пост.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
||||
|
||||
![]() А, сорри, не заметил
![]() ЗЫ: Хотя, АДО лучше. Ибо БДЕ не у всех работать будет. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#8
|
|||
|
|||
![]() Спасибо вам большое!
Только вот с (*) работать нехочет, а с (%) все гуд работает =) а с переносом моей базы на другой компьютер будет очень проблемно? |
#9
|
||||
|
||||
![]() Вот и верь после этого документации. Там для парадокса четко написано *.
![]() Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#10
|
||||
|
||||
![]() Страдалецъ, Верить не документации надо, а личному опыту (сколько уже с SQL работаю, везде %)
murzik, Не очень. Мелькала тема об установке BDE на компах других юзеров. Это всё что надо. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#11
|
|||
|
|||
![]() Извините что мучаю вас своими вопросами, но у меня есть еще проблема
![]() Как мне запаролить базу, чтобы ее нельзя было изменять? И желательно чтобы я мог менять пароль на любой другой. |