Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Вниз

Как побороть 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 вся ветка

Форум: "Базы";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
14-34566
Scorpx
2003-04-17 19:31
2003.05.12
Обновление сайта!!!


1-34411
TRESDA
2003-04-28 14:42
2003.05.12
Табуляция в Memo.


4-34645
wadimwlad
2003-03-12 07:39
2003.05.12
WinApi


1-34478
BorisUK
2003-04-28 06:51
2003.05.12
Проект из D5 работает не правильно в !


1-34399
NAlexey
2003-04-30 11:00
2003.05.12
DateTimeToStr - Integer Overflow





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский