0 / 0 / 0
Регистрация: 20.08.2007
Сообщений: 64

Как ускорить перемещение курсора в DBGrid ?

09.06.2009, 20:31. Показов 3491. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если перемещать курсор в DBGrid на последнюю запись с помощью:

Code
1
TIBQuery::Locate("id",last_id,o);
то программа тормозит от одной секунды и больше (в зависимости от количество записей в таблице)

Как мне ускорить перемещение курсора на последнюю запись?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.06.2009, 20:31
Ответы с готовыми решениями:

DBGrid перемещение курсора
в DBGrid находится информация на основании SQL запроса, сортировка по фамилии а как сделать так: если пользователь, находясь на поле...

Как ускорить выгрузку в Excel из DBGrid с созданием рамок для ячеек?
Всем доброго времени суток! Делаю выгрузку в Exel из своих DBGrid'ов там же создаю рамку для каждой ячейки void __fastcall...

Как включить перемещение курсора через тачпад?
Ноутбук HP 655 Notebook PC. Тачпад ведёт себя странно: кнопки работают, пробуждение из сна при прикосновение к тачпаду происходит, а мышка...

14
1 / 1 / 0
Регистрация: 07.05.2009
Сообщений: 11
09.06.2009, 22:51
ну тут не знаю как, а так советую попробовать через ADOQuery, всё быстро и без задржек
0
0 / 0 / 0
Регистрация: 20.08.2007
Сообщений: 64
09.06.2009, 22:53  [ТС]
Думаете TADOQuery::Locate работает быстрее, чем TIBQuery::Locate?
Почему же?
0
1 / 1 / 0
Регистрация: 07.05.2009
Сообщений: 11
09.06.2009, 22:57
по скорости не сравнивал)))), но у меня в базе фиг знает сколько записей, и скачет он по ней как ферари)))
0
0 / 0 / 0
Регистрация: 20.08.2007
Сообщений: 64
09.06.2009, 23:43  [ТС]
А посмотри сколько у тебя записей.

Да и еще смотря куда курсор скачет - если вначале таблицы, то это быстро, а если в конец, то тут тормоза (по моим наблюдениям)...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
10.06.2009, 01:01
locate будет работать быстро при индексировании таблицы. в противном случае ничего быстрее запроса нет... проверено на практике, отказался вообще от locate и table, перенес самые тяжелые операции в хранимые процедуры и все начало летать, индексы тоже созданы
0
0 / 0 / 0
Регистрация: 20.08.2007
Сообщений: 64
10.06.2009, 14:29  [ТС]
Locate и при индексировании тормозит - проверял... по моим тестам индиксирование никак не влияет на Locate .
А то что SQL-запросы выполняются очень быстро - это факт, тоже проверял. И с индиксированием они еще быстрее выполняются.

Но мне же надо как-то курсор в DBGrid перемещать... А как его быстро перемещать? Locate ведь тормозит...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
10.06.2009, 14:41
а при больших объемах базы ты ну никак не ускоришь, и достичь одинаковой скорости на 100 и 10000 записей не получится... вообще с позиционированием постоянно головняки, ничего не поделаешь... хотя если найдешь все-таки решение, отпишись, сам страдаю от локэйтов...
0
0 / 0 / 0
Регистрация: 20.08.2007
Сообщений: 64
10.06.2009, 22:31  [ТС]
Цитата Сообщение от VoodooMan Посмотреть сообщение
хотя если найдешь все-таки решение, отпишись, сам страдаю от локэйтов...
А решение есть - делать "правильные" SQL-запросы, чтобы в DBGrid выводилось ограниченное количество записей (не более тысячи)...

Но мне просто хотелось бы и при большом количестве записей в DBGrid быстро перемещать курсор.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2009, 08:55
alex-v, к сожалению, в некоторых случаях просто невозможно ограничить кол-во записей, я вообще для ускорения работы ограничиваю кол-во записей, которые видны 500-ами (FetchRows), типа буфферизация отображения, есть тормоза небольшие при закачке новой порции данных, но внутри отдельного сегмента все работает быстрее... всегда приходится чем-то жертвовать...
0
 Аватар для Splitter
203 / 145 / 16
Регистрация: 13.01.2009
Сообщений: 554
11.06.2009, 11:08
а не пробовали такой вариант
C++
1
DataSource1->DataSet->Last();
для DataSource1, который используете для вывода в DBGrid
0
0 / 0 / 0
Регистрация: 20.08.2007
Сообщений: 64
11.06.2009, 14:13  [ТС]
Цитата Сообщение от Splitter Посмотреть сообщение
а не пробовали такой вариант
C++
1
DataSource1->DataSet->Last();
для DataSource1, который используете для вывода в DBGrid
Это тоже самое, что и TIBQuery::Last();
Потому что в DataSource1->DataSet находится указатель на TIBQuery.

VoodooMan, мне еще посоветовали использовать компоненты FIB+. Говорят они быстрее работают, чем стандартные...
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2009, 14:27
так я стандартные уже давно не использую: DAC и только их...
0
0 / 0 / 0
Регистрация: 20.08.2007
Сообщений: 64
11.06.2009, 19:09  [ТС]
А что такое DAC ? (я что-то не слыхал...)
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.06.2009, 20:16
data access component, не помню, как контора называется, но у них компоненты заточены под конкретную базу (oracle, interbase, mysql, ms sql server)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.06.2009, 20:16
Помогаю со студенческими работами здесь

Возможно ли построчное перемещение курсора в текстовом файле? Если да, то как?
Может есть определённые команды?

Как сделать быстрое плавное перемещение курсора влево, вправо?
GetCursorPos(p); SetCursorPos(p.X+10,p.Y); Sleep(10); GetCursorPos(p); SetCursorPos(p.X-10,p.Y); Пробовал...

Почему OnMouseMove плохо реагирует на перемещение курсора. Как можно реализовать постоянный опрос getCursorPos
OnMouseMove формы плохо реагирует на перемещение курсора. Поэтому хотелось бы узнать как как можно реализовать постоянный опрос...

Перемещение курсора
Подскажите как передвинуть курсор в любую точку экрана по координатам x и y. Или каким нибуд другим способом?

Перемещение курсора
Мне нужно сделать что-то типа интерфейса на консоли.Как задавать координаты курсора на консоли в С++?(в Паскале аналог gotoxy()). ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru