Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;
где условие - это соответствие значения поля (полей) искомому значению.


Наверх

Титульная страница Поиск, карта сайта Написать письмо