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