![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возврат курсора TQuery в прежнюю позицию после обновления [D6, Oracle]
Duce © (2002-10-14 14:28:00)Привет, уважаемые! Мастерства никогда не бывает слишком много...
Сразу замечу - пользую БДЕ.
Вот встал вопрос: юзер выбрал сущность из списка(DBGrid),изменил
сущность через форму, ОК, возвращаем его назад в список, на ту запись, которую он менял. Т.е. передернули Query и для возврата я ранее пользовал Locate для возврата к прежней записи. Т.е. запоминал прайм-кей(ID) записи, и затем по этому значению делал Locate. Нынче записей много, такая метода тормозит, и весьма...
Как лучше решать эту задачу?
Duce (2002-10-14 14:54:00) [1]к Anatoly Podgoretsky © (14.10.02 14:51)
ОК, но что значит "сделай постоянные поля "?
Anatoly Podgoretsky (2002-10-14 14:51:00) [2]Если хочешь быстрее бежать по полую, то сделай постоянные поля и сравнивай с Value
Duce (2002-10-14 14:46:00) [3]к Johnmen © (14.10.02 14:34)
Спасибо, укрепил веру! :)
А в кладовках БДЕ АПИ чего-нить полезного нету?
Кстати, кол-во кешируемых записей никак заметно не повлияло на
скорость...
Хоть бы что-нить отжать на скорость. Я например прописал тупой забег по набору со сравнением поля и остановом. Работает шустрее.
Вот думаю, интерпретация типа поля из варианта в что-либо иное(AsInteger) тяжкая вещь? Может, что-то на бинарных сравнениях можно сэкономить...
Dr. Well (2002-10-14 14:43:00) [4]Я не знаю, что быстрее, но я всегда использовал:
Number:=Table1.RecNo;
Table1.ReFresh;
Table1.MoveBy(Number-1);
В скорости не уверен...
passm (2002-10-14 14:38:00) [5]Duce © (14.10.02 14:28)> Ограничивай возвращаемый набор данных установкой фильтров - большой набор данных пользователю, как правило, не нужен. А ускорить позиционирование не получится - индексов нет.
Johnmen (2002-10-14 14:34:00) [6]Так и решать...
Чем меньше будет возвращаться записей, тем меньше будет тормозить.