Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

список значений поля [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо