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

Как побороть AdoDATASet?   Найти похожие ветки 

 
saha   (2003-04-22 12:30) [0]

Привет!
Вот вопрос:
есть база mdb хочу сделать что бы в DBGrid при наборе, допустим, названия курсор плавно перемещался на ближайшую похожую запись (почти как в 1С).
Использую для подключения AdoDataSet. Метод locate прекрасно работает, но он ищет с самого начала и останавливается всегда на одной и той же записи, а дальше не ищет. Как его победить? Ну или может есть другие способы.


 
KoluChi ©   (2003-04-22 13:22) [1]

Делаешь набор данных по запросу SELECT ID FROM WHERE FIELD = FINF_VALUE. А затем Locate по твоей таблице на найденным.


 
saha   (2003-04-22 13:52) [2]

через select ясно, но база ~80 тыс записей, каждое новое обновление вызывает задержку. Да и все равно, допустим есть n товара - Бублик по 1.2 бублик по 1.3 и т.д. Если я сделаю locate, то он найдет мне первый, а как сделать что бы он еще и второй искал?


 
Anatoly Podgoretsky ©   (2003-04-22 13:58) [3]

LIKE тебя не устроит, это конечно не поиска, а фильтрация, но быстро и удобно, все бублики будут в одном флаконе.


 
Соловьев ©   (2003-04-22 14:00) [4]


> но база ~80 тыс записей, каждое новое обновление вызывает
> задержку.

????



> товара - Бублик по 1.2 бублик по 1.3 и т.д. Если я сделаю
> locate, то он найдет мне первый, а

select *
from table
where upper(name_tovar collate pxw_cyrl) like upper("БУБЛИК" collate pxw_cyrl)||"%"


 
KoluChi ©   (2003-04-22 14:27) [5]


> через select ясно, но база ~80 тыс записей, каждое новое
> обновление вызывает задержку. Да и все равно, допустим есть
> n товара - Бублик по 1.2 бублик по 1.3 и т.д. Если я сделаю
> locate, то он найдет мне первый, а как сделать что бы он
> еще и второй искал?


Locate не по бубликам, а по ID



 
saha   (2003-04-22 14:29) [6]

\>KoluChi
а по-подробнее


 
KoluChi ©   (2003-04-22 14:58) [7]

По-подробнее:
1. у тебя уже есть таблица1(набор данных), в которой ты хочешь искать бублики.
2. создаем другую таблицу2(набор данных), в которую выбираем идентификаторы бубликов, которые удовлетворяют условию.
SELECT BUBL_ID FROM BUBLS WHERE BUBLE_NAME LIKE FIND_TEX
3. в таблице1 переходим локейтом на напись где идентификатор бублика = BUBL_ID первой записи таблицы2.
4. затем при нажатии на кнопку "следующий", в таблице2 переходим на следующую запись и определяем BUBL_ID. В таблице1 позиционируем на запись с идентификатром BUBL_ID.



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

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



Память: 0.46 MB
Время: 0.008 c
6-34533
IL-89
2003-03-16 17:26
2003.05.12
Disconnect


7-34629
bers
2003-03-19 11:55
2003.05.12
имя пользователя


1-34488
Tihas
2003-04-29 16:29
2003.05.12
Вопросик на тему вызова сишных функций из dll


6-34525
tu134
2003-03-15 14:31
2003.05.12
как узнать сколько байт получил комп в сети с определенным IP ад.


1-34484
deedlit
2003-04-29 15:33
2003.05.12
Ctrl+?, как поймать? Сама знаю, что глупо. :)




   Наверх