X11
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: может все таки if DataSet1.Locate('ID', i2,[] ) then Continue; тормозит? записей дубликатов много? | Записей даже очень мало. До сотни. Даже на 10 записей заметно медленно работает. Добавлено: Цитата: Действительно, зачем if DataSet1.Locate('ID', i2,[] ) then Continue; | чтобы второй раз не добавлять в таблицу одни и те же записи Добавлено: Цитата: Намного быстрее будет очистить весь DataSet1 и заполнить новыми данными без дополнительных проверок. | Нет, логика отправки во вторую таблицу такова: Пользователь выполнил поиск записей согласно требуемых параметров, они отобразились в гриде. Он выделил несколько записей и отправил в спец. таблицу, назовём её Таблица отбора. Далее пользователь может выделить ещё отсортировать, отфильтровать грид, затем опять отправить несколько записей в таблицу отбора. Затем указать новые параметры поиска и сделать выборку из базы, не теряя данные в таблице отбора, и опять из новой выборки выделенные записи отправить в таблицу отбора. Чтобы потом с записями в таблице отбора что-то делать: редактировать, печатать, экспортировать и т.д. Раньше была связка везде MemTable + DBGridEh, а сейчас всё девовское. Работает медленно. Не могу понять в чём дело. Вот только что проэесперементировал. 10 записей выделил и отправил в таблицу отбора - 7 секунд. А если 100 записей то и думать боюсь. Это при том, что проц двухядерный интел и 2 гига памяти.
---------- /не мы такие, жизнь такая/ |
|