|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Поиск по Базе Данных!
Доброго времени суток!
Вот это взял с Вашего форума (ссылка: "http://www.delphisources.ru/forum/showthread.php?t=13110") указваю ссылку т.к. тема закрыта. Всё компилится, но работает не так хорошо. Код:
procedure TForm1.Button7Click(Sender: TObject); begin If not DBGrid1.DataSource.DataSet.Locate('Имя', Edit1.Text, []) then ShowMessage('ТаLкой записи в Базе Данных Нет!'); end; Я решил добавить сюда loPartialKey для более удобного поиска и получил следующее: procedure TForm1.Button7Click(Sender: TObject); begin If not DBGrid1.DataSource.DataSet.Locate('Имя', Edit1.Text, [loPartialKey]) then ShowMessage('Такой записи в Базе Данных Нет!'); end; Но у меня остался не решенным вопрос в продолжение темы. А вопрос такой: При нахождении одинаковых записей в БД и повторном нажатии кнопки "Поиск", поиск не продолжается. То есть, если много записей с одинаковым именем, то при нажатии на кнопку "Поиск" повторно, курсор остаётся на первой найденной записи. Ещё поиск из данного примера ищет не по всему полю. Если кто сталкивался с подобными проблемами и решил их, то пожалуйста помогите. За ранее Благодарен! Последний раз редактировалось lmn, 07.07.2017 в 21:47. |
#2
|
|||
|
|||
Ну да, т.к. Locate каждый раз ничинает искать с начала, находит ту же запись и останавливается. Тут придется таки писать поиск "ручками".
|
#3
|
||||
|
||||
Сортирнуть по локейтному полю или заюзать фильтр...
Пишу программы за еду. __________________ |
#4
|
|||
|
|||
Цитата:
|
#5
|
|||
|
|||
Цитата:
Последний раз редактировалось lmn, 07.07.2017 в 12:15. |
#6
|
||||
|
||||
Код:
var flg: bool = true; procedure TfrmMain.Button7Click(Sender: TObject); begin with DBGrid1.DataSource.DataSet do begin if flg then First else Next; while not eof do begin if FieldByName('Имя').AsString = Edit1.Text then begin flg:= false; break; end; Next; if (eof) and (flg) then begin First; ShowMessage('Такой записи в Базе Данных Нет!'); break; end; end; end; end; Помогаю платно. Помогаю иногда бесплатно. |
#7
|
|||
|
|||
Цитата:
Это вообще хня полнейшая! Последний раз редактировалось lmn, 07.07.2017 в 22:02. |
#8
|
||||
|
||||
Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#9
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |