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

Вниз

LocateNext   Найти похожие ветки 

 
Александр ©   (2004-02-16 15:12) [0]

Добрый день.
Столкнулся с такой проблемой: в моей программе осуществляется поиск по неполному соответствию, так сначала находится первая запись потом следующая и т.д. до конца базы, я использую LocateNext :
dm.IBQuery1.LocateNext("snbook",trim(Edit.text), [loCaseInsensitive,loPartialKey])
но получается так, что функция находит только первую подходящюю запись, что делать что бы находились и следующие ?


 
Desdechado ©   (2004-02-16 15:18) [1]

сделать перебор в цикле с проверкой условия


 
Александр ©   (2004-02-16 15:30) [2]

Так судя по описанию функция LocateNext сама должна находить следующий элемент, а этого не происходит ?


 
Соловьев ©   (2004-02-16 16:21) [3]

Тут недавно был спор по поводу использования Locate... Так вот я предлагал, что перед тем как делать Locate лучше сначала выполнть запрос к серверу select ... from table where ...
1. Таким образом мы зря не закачиваем на клиента записи, если такой нет.
2. И это очень важно! Мы можем использовать этот запрос для нормального функциклирования LocateNext, LocatePrior. Я лично вывожу еще одно окошко с этими результатами и пользователь сам начинает выбирать нужную запись. И еще может отсортировать так как ему хочется...
А переход осуществляется по ключевому полю даблкликом по гриду с результатами.


 
Vlad ©   (2004-02-16 19:06) [4]


> Desdechado ©   (16.02.04 15:18) [1]
> сделать перебор в цикле с проверкой условия

Locate в IBX - это и так цикл с проверкой условия.

Автору: посмотри реализацию этого метода. По-моему там после LocateNext нужно обычный Next делать. Тогда должно работать


 
Deniz ©   (2004-02-17 08:43) [5]

А вызвать еще раз dm.IBQuery1.LocateNext("snbook",trim(Edit.text), [loCaseInsensitive,loPartialKey]) не меняя позиции курсора


 
Александр ©   (2004-02-17 09:49) [6]

Да, но в D6 всё работает как положено. Перетаскиваю процедуру в D5 и LocateNext работает как обычный Locate !!!?


 
Соловьев ©   (2004-02-17 10:04) [7]

2 Александр
Почему ті не хочешь попробовать [3]?


 
Vlad ©   (2004-02-17 10:06) [8]


> Александр ©   (17.02.04 09:49) [6]
> Да, но в D6 всё работает как положено

Еще раз говорю, тебе что, трудно посмотреть реализацию метода ?
В D5 и D6 она вполне может отличаться.
В D5 (я не проверял, но судя по исходному коду это так), нужно после LocateNext делать просто Next, тогда все должно заработать.


 
BlackKing ©   (2004-02-25 12:00) [9]

В fibplus4_42 на D3 такая-же лажа. приходится вызывать Next перед LocateNext, тогда работает. А LocateNext получается нужен только для проверки подходит текущая запись или нет.


 
Соловьев ©   (2004-02-25 12:04) [10]

уже есть 5.2
но все-таки советую [3]


 
BlackKing ©   (2004-02-25 12:13) [11]

[3] мне не подходит, т.к. я закачиваю набор записей состоящий из нескольких групп, а потом через Locate и LocateNext отбираю нужные на данный момент. Ето побыстрее, чем каждый раз делать запрос на сервер (тестил).


 
Deniz ©   (2004-02-25 13:10) [12]

Не знаю как ты делаешь, но у меня есть старая программа (Delphi 5 + InterBase 5.6), так вот там LocateNext отрабатывает нормально, правда в Delphi 5 IBX обновлены были, может в этом дело?



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

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

Наверх





Память: 0.47 MB
Время: 0.031 c
1-1079013992
Thick
2004-03-11 17:06
2004.03.28
Компонент в RichEdit


4-1074326910
Nikolay str
2004-01-17 11:08
2004.03.28
Как определить HWND меню


3-1077873360
Janbolat
2004-02-27 12:16
2004.03.28
Суммирование в DBGRID е


1-1078422320
white
2004-03-04 20:45
2004.03.28
Форма


14-1078161551
cyborg
2004-03-01 20:19
2004.03.28
Авторские права





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский