![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
список значений поля [D6]
Vir © (2004-10-19 18:05:00)Как получить все значения поля из Table не премащая курсор? А то используя next перерисовываються все визуальные контролы что тормозит процесс.
Ega23 (2004-10-20 11:14:00) [1]Да и пофик-то... главное не видно, что программа делает и делает быстро... А если геометрические изменения очень важны, то их можно сохранять, а потом подгружать... :)))))
... и уйдёт на это времени больше, чем на рефреш датасета
Draught (2004-10-20 11:09:00) [2]
> msguns © (20.10.04 10:53) [18]
> Правда, все геометрические изменения,
> сделанные узером, весело гавкнуться, но это уже несколько
> другая история ;)
Да и пофик-то... главное не видно, что программа делает и делает быстро... А если геометрические изменения очень важны, то их можно сохранять, а потом подгружать... :)))))
msguns (2004-10-20 10:53:00) [3]>Draught © (20.10.04 10:29) [17]
>У DBGrid свойство DataSource, можно на время манипуляций, которые не нужно видеть, менять значение этого поля на пустое, а после всех манипуляций заново дописывать DM.DATASource1
Все верно, но.. Если по каким-то причинам состав или последовательность полей датасета, указанного в датасорсе, изменилось, то грид может "подвесить" приложение. Чтобы этого не было, надо после "обнуления" указателя на датасорс делать колонкам грида Columns.Clear, а после присвоения выполнять метод
Columns.RebuildColumns. Правда, все геометрические изменения, сделанные узером, весело гавкнуться, но это уже несколько другая история ;)
Draught (2004-10-20 10:29:00) [4]У
DBGridсвойствоDataSource, можно на время манипуляций, которые не нужно видеть, менять значение этого поля на пустое, а после всех манипуляций заново дописыватьDM.DATASource1
msguns (2004-10-20 10:10:00) [5]>Vir (19.10.04 19:27) [12]
>В том то и дело что в некоторый момент есть неоходимость исправить все значения одного поля.
Но посколько на таблицу завязанно еще несколько Query через master-detail- при перемецении по записям все они начинаю перечитывать базу и соответсвенно перерисовать свои визуальные компоненты это очень сильно ест время.
Было бы идеально пройтись по записям и потом все котролы один раз пречитать.
Тяжелое наследие таблизма.. Меняем данные только его методами, линкуемся через Master-Detail.. Запросы, вынос логики из клиента на сервер - это все для А.С.Пушкина.
Sergey13 (2004-10-20 09:40:00) [6]2[12] Vir (19.10.04 19:27)
>В том то и дело что в некоторый момент есть неоходимость исправить все значения одного поля
Может в этом случае выгоднее выполнить отдельный модифицирующий это поле запрос? И переоткрыть исходный датасет.
ЮЮ (2004-10-20 03:00:00) [7]>Ну а грид - он же прорисовывет содержимое не перемещая курсора
У грида для этих целей есть свой буфер - DataLink - но содержит он только те записи, которые видны в гриде
Ega23 (2004-10-19 19:31:00) [8]см. Johnmen © (19.10.04 18:36) [1]
Vir (2004-10-19 19:27:00) [9]В том то и дело что в некоторый момент есть неоходимость исправить все значения одного поля.
Но посколько на таблицу завязанно еще несколько Query через master-detail- при перемецении по записям все они начинаю перечитывать базу и соответсвенно перерисовать свои визуальные компоненты это очень сильно ест время.
Было бы идеально пройтись по записям и потом все котролы один раз пречитать.
Ega23 (2004-10-19 19:20:00) [10]Ну создай массив данных, зафигач в него все записи из датасета после открытия и работай с ним.
Только как ты визуальными контролами при этом пользоваться будешь?
Vir (2004-10-19 19:17:00) [11]Быстрее работать со своим буфером чем перемещаться через next
Ega23 (2004-10-19 19:12:00) [12]Быстрее чем что?
Vir (2004-10-19 19:11:00) [13]Ну а грид - он же прорисовывет содержимое не перемещая курсора, значит есть возможность получать не только текущую запись.
А нафиг?- да думаю что так по быстрее будет.
Ega23 (2004-10-19 18:49:00) [14]А нафиг?
Ega23 (2004-10-19 18:48:00) [15]Ну как... First, While not Eof, Next ...
Vir (2004-10-19 18:47:00) [16]Гм... DataSet и есть тот буфер записей...
Вот именно TTable и есть он - так как от туда получть все записи разом в какой либо свой буфер.
Ega23 (2004-10-19 18:43:00) [17]Гм... DataSet и есть тот буфер записей...
Vir (2004-10-19 18:43:00) [18]точнее DataSource
Vir (2004-10-19 18:42:00) [19]А DataSet их тогда от куда получает?
уверен что должен быть буфер записей.
Johnmen (2004-10-19 18:36:00) [20]Никак.
DisableControls+F1