Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2009, 16:35   #1
bosston
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 32
По умолчанию последовательный поиск по базе

Привет всем!
я только начинаю работать в дельфи, до этого работал с foxpro.
сейчас возник вопрос по сабжу. надо чтобы работало так:
1. при нажатии комбинации клавиш запускается окно диалога для ввода значения для поиска(это все работает). значение запоминается в глобальную пременную. курсор переходит на найденную запись. я это организовал через LOCATE.
2. при нажатии на комбинацию клавишь курсор должен переместиться на следующию запись удовлетворяющую условию - вот это я не могу организовать. LOCATE не проходит.
подскажите, как это сделать, юристы просит!
bosston вне форума Ответить с цитированием
Старый 16.04.2009, 16:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
LOCATE не проходит.
Показывай код.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2009, 16:45   #3
bosston
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 32
По умолчанию

Код:
procedure TForm2.F31Click(Sender: TObject);
begin
  //ab_nomer:= Query_list.FieldByName('Id_klient').AsString;
    If not Query_list.Locate('Id_klient',ab_nomer_find,[loCaseInsensitive]) then  //
       begin
          Beep;
          MessageDlg('Запись не найдена',mtInformation,[mbOK],0);
          exit;
       end;

end;
это уже повторный поиск

Последний раз редактировалось Stilet; 16.04.2009 в 16:47.
bosston вне форума Ответить с цитированием
Старый 16.04.2009, 16:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит нет такой записи. Может в ab_nomer_find данные которых ну нет никак. или ты после первого запуска поиска умудряешся сменить позицию в базе, а locate начинает искать с текущей позиции.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.04.2009, 16:54   #5
bosston
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 32
По умолчанию

Цитата:
Значит нет такой записи.
есть! но расположены рядом и курсор не переходит на следующую запись.
bosston вне форума Ответить с цитированием
Старый 16.04.2009, 23:37   #6
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
Подмигивание

лови образец

FindRecord.rar

подправишь по свою прогу, вместо ClientDataSet свою таблицу. Код там с коментариями

Надеюсь то что надо
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 20.04.2009, 10:19   #7
bosston
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 32
По умолчанию

спасибо, сделал.
но теперь вопрос в другом.
а во-второй закладке, где нет таблицы, будет работать?
у меня выдает ошибку, что нельзя установить фокус в таблице
bosston вне форума Ответить с цитированием
Старый 20.04.2009, 19:56   #8
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

нельзя устанавливать фокус на невидимых или недоступных объектах
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума Ответить с цитированием
Старый 20.04.2009, 21:36   #9
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Попробуй через фильтр, находить записи:

Код:
  AdotableBluda.Filtered:=false;
  AdotableBluda.Filter:='category='+quotedstr('Спиртное');
 AdotableBluda.Filtered:=True;

  if AdotableBluda.RecordCount<>0 then
  begin
    showmessage ('запись есть');
  end;
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 22.06.2009, 13:18   #10
bosston
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 32
По умолчанию

привет всем!
поиск сделал, но надо отключить визуальный эффект поиска по базе и выдать окно с сообщением "Идет поиск", после окончания оно должно закрыться.
использую команду Query_list.DisableControls, но не понятно как она работает и где ее прописать?
bosston вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по базе данных ERASERROR БД в Delphi 4 14.03.2008 16:34
Поиск по базе Антон Шестаков БД в Delphi 1 22.01.2008 20:32
Последовательный поиск в БД Nowichok БД в Delphi 7 10.02.2007 21:55
Поиск по базе Таня84 БД в Delphi 3 09.02.2007 10:53