![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Locate [D6, MSSQL]
weak © (2002-07-08 10:53:00)Подскажите пожалуйста!
Простите, вопрос, наверное, простой.
Необходимо реализовать последовательный поиск по TQuery, найти сначала первую запись соответствующую условию, вторую и т.д., при этом курсор надо перемещать в TGrid именно на эту запись. Метод Locate находит просто любую запись, а как найти следующую...
Большое спасибо за помощь
samolazov (2002-07-08 12:09:00) [1]Если ты работаешь с MSSQL, то дурной стиль использовать LOCATE. Пользуйся SQL запросами с WHERE в том тамом TQuery и перебор результатов выдаваемого запроса.
Andrey007 (2002-07-08 11:38:00) [2]>Все прекрасно, он находит запись, удовлетворяющую запросу, но только самую последнюю. А все записи, находящиеся между первой и последней пропускает. В чем дело?
Дело в том, что обработчик данных надо засунуть в цикл Repeat until между repeat и Query.Next.
> А если поиск осуществляется по нескольким буквам, а может быть и по одной. Как тут быть?
Поподробней, пожалуйста.
Val (2002-07-08 11:36:00) [3]>weak (08.07.02 11:33)
Как тут быть?
loCaseInsensitive Key fields and key values are matched without regard to case.
loPartialKeyKey values can include only part of the matching key field value; for example, "HAM" would match both "HAMM" and "HAMMER."
weak (2002-07-08 11:33:00) [4]А еще проблема. А если поиск осуществляется по нескольким буквам, а может быть и по одной. Как тут быть?
weak (2002-07-08 11:13:00) [5]Все прекрасно, он находит запись, удовлетворяющую запросу, но только самую последнюю. А все записи, находящиеся между первой и последней пропускает. В чем дело?
VICTOR_ (2002-07-08 11:01:00) [6]Если поиск делаеш в цикле
For, While, Repeat
то попробуй
Cоntinue
Andrey007 (2002-07-08 10:59:00) [7]if Query.Locate(...) then
repeat
Query.Next
until условие or Query.Eof;
где условие - это соответствие значения поля (полей) искомому значению.