Вниз
Скачать: CL | DM;

ПРИВЕТ ВСЕМ! Метод Locate возвратит мне true и...   Найти похожие ветки 

← →
@andrew ©   (2002-12-23 11:27) [0]

поставит курсор на найденную запись, а как бы мне узнать, что такая запись не одна и соотв. перейти на следующую, удовлетворяющую условиям поиска. Есть что-то вроде LocateNext :?)


← →
MsGuns ©   (2002-12-23 11:38) [1]

Способов несколько, но, к сожалению, все надо писать ручками.

1-й. Простым просмотром записей с отключением грида от датасорса и использованием букмарки для возврата назад в случае неудачного поиска. В конце поиска присоединять к гриду ds

2-й. Выполнить запрос и искать не в "родном" НД, а в том, что вернул query. При обнаружении делать Locate в "родном" НД, например, по уникальному идентификатору записи.

3-й. Использовать "параллельный" НД в памяти, а в нем искать простым последовательным пробегом. Годитсядля относительно небольших НД.

4-й. Опять же использовать запрос, но указывать доп.условие типа WHERE ID > <Идент-р текущей записи>


← →
sniknik ©   (2002-12-23 12:37) [2]

+5-й. Поставить нужный фильтр, и FindFirst, FindNext, FindPrior по нему, не применяя к датасет (filtered=false). (работает для ADO) FindNext при невыполнении фильтра оставит курсор на месте.


← →
Anatoly Podgoretsky ©   (2002-12-23 12:49) [3]

MsGuns © (23.12.02 11:38)
2-й. Не требует поиска, а только перемещение


← →
MsGuns ©   (2002-12-23 12:56) [4]

>Anatoly Podgoretsky © (23.12.02 12:49)
>MsGuns © (23.12.02 11:38)
>2-й. Не требует поиска, а только перемещение

Перемещение по 2-му НД (под словом "искать" я имел в виду перемещение Prior/Next с простой проверкой на Bof/Eof), а в родном все же Locate несколько шустрее, чем тупое Next с проверками 8). Или я не прав ?



--------------------------------------------------------------------------------


← →
Anatoly Podgoretsky ©   (2002-12-23 13:00) [5]

MsGuns © (23.12.02 12:56)
Я на них и намекал, перемещение по полученому набору, который соответствует Locate - очень шустро и логика ояень простая
Альтернативу назвали - фильтр, но это может быть очень медленно, если записей в фильтре мало, а исходных много.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
3-48919
Иксик
2002-12-20 14:28
2003.01.16
Удаленная БД


1-49087
Mr Black
2003-01-05 02:30
2003.01.16
Работа с формами


6-49191
Alex777
2002-11-16 18:06
2003.01.16
Сурцы из TWebBrowser


3-48938
_landy
2002-12-19 15:37
2003.01.16
TQuery & TStream


3-48944
sndanil
2002-12-19 14:39
2003.01.16
IBTable




   Наверх