![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте, направьте пожалуйста на путь истинный.
База данных FireBird есть таблица с ключевым полем. Нужно перенести курсор в dbgrid на строку с определенным id обычно выполняю это так: dtmdlMain.ibqryViewUsluga.Locate('USLUGA_ID',uslID ,[]); frmMain.dbgrdhMain.SetFocus; при таблице в среднем в 400 записей locate проводится до 3 секунд на слабой машине. (проблема в том что база быстро увеличивается, соответственно время так же). Есть ли альтернатива данному методу? delphi xe2 |
#2
|
||||
|
||||
![]() Попробуйте Seek использовать.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Seek для работы с бинарными файлами как я понял а не с бд
|
#4
|
|||
|
|||
![]() Цитата:
попробуй отключать DB Aware компоненты на момент поиска - TIBQuery.DisableControls/TIBQuery.EnableControls. Хотя это сильно не должно влиять. Что-то странное, поиск в 400 записях - не самая сложная задача. 3 сек на нее - очень долго... |
#5
|
||||
|
||||
![]() Как вариант -- перестать использовать TIBTable и написать, наконец, нормальную программу.
|
#6
|
|||
|
|||
![]() Я не использую ibtable, для подключения к firebird base использую такие компоненты
TIBDatabase - TIBquery - TIBTransaction - TDateSource. TIBQuery.DisableControls/TIBQuery.EnableControls эффекта не дает, проблемма с медленным Locate имеет место быть, но так в интернете метода решения проблемы не нашел. Только лишь переход на FIBPlus компоненты, но переписывать всю программу сомнительный вариант. может еще кто знает как возможно в дбгриде перенести курсор на определенную запись не используя Locate? |