Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизКак перейти к следующе из найденных по какому-либо условию записи Найти похожие ветки
← →
Lamo_xxxx © (2004-04-28 08:38) [0]есть набор данных(ADOQuery).
делаю поиск...
ADOQuery1.Locate("name","xx",[loCaseInsensitive, loPartialKey]);
Locate - останавливается на первой записи из найденных.
если, условию поиска удовлетворяет больше чем одна запись, как перейти к следующим?
← →
sniknik © (2004-04-28 08:46) [1]1 сортировка и Next пока равно.
2 паралельный запрос с выбором ID записей удовлетворяющих условию, перемещение по ID
3 поиск по фильтру findfirst, findnext ...
← →
Lamo_xxxx © (2004-04-28 08:58) [2]findfirst, findnext
работают только если установлен фильтр?
← →
Lamo_xxxx © (2004-04-28 09:01) [3]А вот в TIBQuery есть интересный метод
LocateNext()
пробовал...
делает тоже самое, что Locate(), хотя по названию должен вроде нечто иное делать..
← →
ZrenBy © (2004-04-28 09:27) [4]В копилку. Вариант для ADODataSet & SQLOLEDB
procedure TForm1.ButtonFindClick(Sender: TObject);
var n:Integer;
begin
// ADOQuery1.SQL.Text := " use pubs select * from authors";
if(ButtonFind.Tag=0)then begin
ADOQuery1.Recordset.AbsolutePosition := 1;
ADOQuery1.Recordset.Find("au_id like "+QuotedStr("%-72-%"),0,adSearchForward,0);
if not(ADOQuery1.Recordset.EOF or ADOQuery1.Recordset.BOF)then begin
ButtonFind.Tag := 1;
end else begin
Application.MessageBox("Нету","",0);
Exit;
end;
end else begin
ADOQuery1.Recordset.Find("au_id like "+QuotedStr("%-72-%"),1,adSearchForward,0);
if(ADOQuery1.Recordset.EOF or ADOQuery1.Recordset.BOF)then begin
ButtonFind.Tag := 0;
ButtonFindClick(nil);
Exit;
end;
end;
n := ADOQuery1.Recordset.AbsolutePosition - 1;
ADOQuery1.First;
ADOQuery1.MoveBy(n);
end;
← →
Lamo_xxxx © (2004-04-28 10:01) [5]круто...
а для TIBQuery есть что-нибудь похожее?
← →
sniknik © (2004-04-28 10:42) [6]ZrenBy © (28.04.04 09:27) [4]
это похоже попытка собственной реализации поиска по индексу. посмотри в хелп по findfirst, findnext ..
← →
Vlad © (2004-04-28 10:47) [7]
> Lamo_xxxx © (28.04.04 10:01) [5]
Для TIBQuery метод Locate организован с помощью обычного цикла while not eof ...
Его не трудно написать самому.
Или есть готовый метод LocateNext
← →
ZrenBy © (2004-04-28 12:56) [8]...findfirst, findnext ..
А если нужен и фильтр и финд одновременоо ?
← →
sniknik © (2004-04-28 13:30) [9]ну тогда делать по другому.
хотя использование фильтра в серверных решениях это экзотика, если он нужен то скорее всего получили кучу лишних данных, просадили сетку... и т.д. (имхо естественно)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c