Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 20.11.2017, 22:23   #1
Aleksandr
Участник клуба
 
Регистрация: 22.05.2007
Адрес: Белгородская область
Сообщений: 511
Репутация: 111
По умолчанию Поиск строк DBGrid

Делаю поиск с помощью кода
Код:

if not DBGrid1.DataSource.DataSet.Locate('Группа', RzEdit1.Text, [loCaseInsensitive, loPartialKey]) then
    statusBar1.Panels.Items[1].Text:='Запись не найдена'
    else
  statusBar1.Panels.Items[1].Text:='Запись найдена';
end;

Не получается с помощью кнопки далее перейти к следующей строке
Код:

form1.DBGrid1.DataSource.DataSet.First;
while not (form1.DBGrid1.DataSource.DataSet.Eof) do begin
     DBGrid1.DataSource.DataSet.locate('Группа', RzEdit1.Text, loPartialkey],);
if pos(RzEdit1.Text, form1.DBGrid1.DataSource.DataSet.FindField('Группа').asstring) > 0 then exit;
  form1.DBGrid1.DataSource.DataSet.Next;
end;

StatusBar1.Panels.Items[2].Text:='Ищем: ' +RzEdit1.Text;

Aleksandr вне форума   Ответить с цитированием
Старый 20.11.2017, 22:44   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,683
Репутация: 6211
По умолчанию

Что по-твоему поиск следующей? Прокомментируй каждую строку из нижнего кода

А искать так:
указатель на следующую от найденной, а не на начало
цикл пока не конец данных
если условие выполняется то нашел и выход из цикла
иначе на следующую и на начало цикла

дерзай ))
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.11.2017 в 22:59.
Аватар на форуме   Ответить с цитированием
Старый 21.11.2017, 09:28   #3
Sciv
Профессионал
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Адрес: Курган
Сообщений: 3,205
Репутация: 1205
По умолчанию

Я дико извиняюсь за свою некомпетентность, но зачем в ДБГрид искать строки руками, если есть фильтрация и SQL?
__________________
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума   Ответить с цитированием
Старый 21.11.2017, 09:55   #4
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,683
Репутация: 6211
По умолчанию

Почему бы и нет? Если выбранных относительно не много само собой. Найти среди выбранных записей первую по какому-то критерию и следующие удовлетворяющие ему, обычно по неупорядоченному полю. По упорядоченному следующие и так видны. При этом остальные условно в зоне видимости.
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск на языке Pascal DimzNOVIchok45 Помощь студентам 7 19.09.2014 21:40
Поиск и вывод строк в DBGrid VIRKUT Помощь студентам 0 02.06.2013 23:17
Поиск нескольких строк в DBGrid pr1nc БД в Delphi 6 16.12.2012 19:39
поиск строк и копирование ячеек с этих строк Santla789 Microsoft Office Excel 2 19.11.2012 11:15
Диффиринцирование строк в DBGrid - ? Evgenii БД в Delphi 5 21.07.2009 08:57


22:01.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru