Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.20;
Скачать: CL | DM;

Вниз

Никто не сталкивался: толи Locate глючит, толи ????....   Найти похожие ветки 

 
@andrew ©   (2002-12-24 13:44) [0]

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


 
@andrew ©   (2002-12-24 13:50) [1]

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


 
myor ©   (2002-12-24 14:14) [2]

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


 
LordOfSilence ©   (2002-12-24 14:19) [3]

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


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

>LordOfSilence
Да

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


 
Alexandr ©   (2002-12-24 14:32) [5]

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


 
LordOfSilence ©   (2002-12-24 14:33) [6]

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


 
Val ©   (2002-12-24 14:33) [7]

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



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

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
14-62746
stainer
2003-01-04 13:19
2003.01.20
popupmenu отображается медленно


14-62825
John
2002-12-29 19:47
2003.01.20
Компиляция из


3-62379
Борис
2002-12-25 08:48
2003.01.20
ДатаВремя в запросе Insert на InterBase


7-62858
sural
2002-11-02 08:41
2003.01.20
Как точно узнать размер памяти на видеокарте?


6-62698
Grigor
2002-11-13 19:48
2003.01.20
Как получить в строковой переменной день недели