![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Подскажите, как можно после вызова Locate, далее делать поиск по записям!? Я написала новую функцию в которой с помощью Next записи перебираются, но это очень долго и не красиво. Подскажите, как ещё можно ?
|
|
#2
|
||||
|
||||
|
Всмысле после вызова Locate?
А по вопросу: Либо Next в цикле, либо SQL в TQuery. |
|
#3
|
|||
|
|||
|
да..после Locate нужно искать снова эту же запись, я уже делала через Next...очень медленно.
|
|
#4
|
||||
|
||||
|
Locate находит запись, даже после изменения этой записи курсор остается на ней. Зачем ее еще раз искать?
|
|
#5
|
|||
|
|||
|
я имею ввиду тот же параметр или запись в этом столбце!
к примеру : если слово город повторяется раз 5! |
|
#6
|
||||
|
||||
|
Ясно. Тогда только Next или SQL запросом. Если есть проблемы с SQL пиши что точно надо сделать.
|
|
#7
|
|||
|
|||
|
//хотите описываайте , хотите нет function TDataSet.FindFirst: Boolean;
Код:
function TDataSet.FindFirst: Boolean;begin
Result := FindRecord(True, True);
end;
function TNPSForm.GetFilter: string;
var
Pole : Shortstring;
begin
// выбор поля ...
case RadioGroup1.ItemIndex of
0: Pole := 'Какое хотите1';
1: Pole := 'Какое хотите2' ;
2: Pole := 'Какое хотите3' ;
end;
if edName.Text = ' ' then
begin
ShowMessage ('Ни чего не набрали!');
exit;
end
else
Result := Pole + ' = ' + Trim(edName.Text)
end;
procedure TNPSForm.SearchFirst;
begin
ReadQuery.Filter := GetFilter;
if not ReadQuery.FindFirst then
Application.MessageBox('Данные не найдены', 'Поиск', MB_OK + MB_ICONINFORMATION)
else
Next.Visible:= true;
end;
procedure TNPSForm.Button3Click(Sender: TObject);
var
DSAfterScroll: TDataSetNotifyEvent;
DSDataChange: TDataChangeEvent;
begin
DSAfterScroll := ReadQuery.AfterScroll;
DSDataChange := dsRead.OnDataChange;
ReadQuery.AfterScroll := nil;
dsRead.OnDataChange := nil;
SearchFirst;
ReadQuery.AfterScroll := DSAfterScroll;
dsRead.OnDataChange := DSDataChange;
end;Последний раз редактировалось Admin, 13.04.2009 в 15:29. |
|
#8
|
||||
|
||||
|
Во-порвых, "ГДЕ ТЕГИ???" © Модеры форума
Во-вторых - вроде всё верно... или я ошибаюсь... но помоему всё ок. |