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

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

Никто не сталкивался: толи Locate глючит, толи ????.... [D5]


@andrew ©   (2002-12-24 13:44:00) 

Делаю Locate, а он не двигает курсор куда надо. Если смотреть данные текущей записи (типа FieldByName) - все правильно, но курсор стоит не там где надо.


LordOfSilence   (2002-12-24 14:33:00) [1]

Совет: еще раз, внимательно и вдумчиво, перечитать справку по свойствам BOF/EOF


Val   (2002-12-24 14:33:00) [2]

>@andrew © (24.12.02 13:44)
Погодите, что-то вы путано говорите. Вы попадаете на нужную запись - последнюю - так? То, что вы думаете, что находясь на ней вы должны получить EOF = true - распространенная ошибка. Поскольку курсор находится именно на последней записи, а вот при попытке переместиться с нее далее, вы и получаете EOF = true, что есть правда. То же и с первой записью.
Понаблюдайте, хотя бы за кнопками стандартного навигатора - увидите ту же картину. :)


Alexandr   (2002-12-24 14:32:00) [3]

так и должно быть
Этот eof возникает когда уже врезался лбом в стенку, а не заранее


@andrew   (2002-12-24 14:29:00) [4]

>LordOfSilence
Да

Еще туда же.
Я тут поэксперементировал и выяснил, что Locate тут нипричем.
А именно:
with Query do begin
First;
while not(Eof) do
Next;
end;
Для меня было открытием, что Eof становится true только если я, находясь на посленей записи еще раз (на мой взгляд лишний) сделаю Next. Так и должно быть (если 3 строки, то цикл выполняется 3 раза, а не два)?
Извинити, если вдруг оказался лохом :-)
На всякий: я работаю с ADOQuery(проапдейченным как надо)


LordOfSilence   (2002-12-24 14:19:00) [5]

Как Вы определяете, что курсор стоит в з..нице?
Это заметно по "стрелочке" в TDBGrid?


myor   (2002-12-24 14:14:00) [6]

код можно увидеть?


@andrew   (2002-12-24 13:50:00) [7]

В догонку.
Это происходит только если искомая запись оказывается последней. Т.е. в моем случае, после Locate я должен получить Eof=true, но ни фига: курсор стоит где-то в з..нице, а вот если сделать Next - гордо встает в конец и вот только тогда возвращает Eof = true. При этом напомню: возвращая значения полей текущей записи я получаю результаты как будто нахожусь на нужной записи в конце...


Наверх

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