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

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

Kак пересортировать таблицу после изменения поля в самой таблице?


Страницы:   1 2 3

Rentgen ©   (2006-08-18 08:28:00) 

Всем привет!
Подскажите пожалуйста:
Есть ДБГрид и СКЛ-запрос с сортировкой.
как пересортировать таблицу после изменения поля в самой таблице?
т.е. если изменить сортирующее поле, то должна пройти пересортировка.

компоненты:
DBGrid;
DataSource;
ADOQuery;
ADOConnection.



BDS2006
Acces2006


Dok   (2006-08-18 12:24:00) [41]


> Вот оно!!!
> работает!!!
> спасибо!!!
> (Query1.Sort := 'IndSort';)

профайлер запусти


Rentgen   (2006-08-18 11:47:00) [42]


> sniknik ©   (18.08.06 10:55) [13]
>
> > У ADOQuery строка SQL: "SELECT * FROM Nominal ORDER BY
> IndSort"
> после выполнения этого запроса
> ADODataSet1.Sort:= 'IndSort';

Вот оно!!!
работает!!!
спасибо!!!
(Query1.Sort := 'IndSort';)


Dok   (2006-08-18 11:33:00) [43]


> Stanislav ©   (18.08.06 11:10) [14]
>
> Dok   (18.08.06 10:18) [10]
> Зачем миллион на клиенте?

Затем чтобы получить корректную сортировку. Если ты выберешь не все записи и будешь сортироать на клиенте - то достоверность этих данных 0. Если на сервере отсортируешь и выберешь 100 , то  тогда тебе ставится 5-ка.


Stanislav   (2006-08-18 11:10:00) [44]

Dok   (18.08.06 10:18) [10]
Зачем миллион на клиенте?


sniknik   (2006-08-18 10:55:00) [45]

> У ADOQuery строка SQL: "SELECT * FROM Nominal ORDER BY IndSort"
после выполнения этого запроса
ADODataSet1.Sort:= 'IndSort';

> 2 - меняем на 5 (должно перейти после 4).
а теперь? (меняется значение в рекордсере на переходе с записи на запись, до этого оно в "инплейсеэдит-е")


Dok   (2006-08-18 10:21:00) [46]


> данные меняются не только юзером в гриде, но и программно.
>  вообщем будет както не правильно после каждого поста делать
> реквери :(

вот это умная мысль.


Dok   (2006-08-18 10:19:00) [47]


> Rentgen ©   (18.08.06 09:58) [7]
>
>
> > Прикрутить волшебную кнопку "Обновить"
>
> хочется интерактивности

на больших обемах будешь ждать, интерактивность это если у тебя управление ядерным реактором или ракетой, в остальных случайях бесполезная фича для тупых пользователей.


Dok   (2006-08-18 10:18:00) [48]


> Есть еще гриды, которые сами сортируют.
>

а ага на миллионе записей :)


Stanislav   (2006-08-18 10:02:00) [49]

Rentgen ©   (18.08.06 09:58) [7]

sniknik ©   (18.08.06 09:06) [3]  - Sort.
Есть еще гриды, которые сами сортируют.


roottim   (2006-08-18 10:02:00) [50]

[3]


Rentgen   (2006-08-18 09:58:00) [51]


> Прикрутить волшебную кнопку "Обновить"

хочется интерактивности

> что? одновременно ?

к счастью нет :). просто неправильно истолковал.

может есть ещё идеи по сабжу?


roottim   (2006-08-18 09:49:00) [52]

Прикрутить волшебную кнопку "Обновить" и повесить хоткей. Когда захочет юзер свежую информацию - тогда он ее и получит.


> данные меняются не только юзером в гриде, но и программно

что? одновременно ?  тогда колизии неизбежны.


Rentgen   (2006-08-18 09:37:00) [53]

да и еще:
комманда
ADOQuery -> Requery();
дает нужный результат.
можно конечно поставить её на АфтерПост, но(!)
данные меняются не только юзером в гриде, но и программно. вообщем будет както не правильно после каждого поста делать реквери :(


Rentgen   (2006-08-18 09:35:00) [54]

Или мы друг-друга не понимаем или я туплю, НО:
есть грид привязанный к DatSet.
DataSet привязан к ADOQuery.
ADOQuery к ADOConnection.

У ADOQuery строка SQL: "SELECT * FROM Nominal ORDER BY IndSort"

далее меняем в гриде поле в столбце IndSort , жмем интер, но строка стоит на месте.
т.е.
Грид:
1
2 - меняем на 5 (должно перейти после 4).
3
4
** ничего не происходит :(


sniknik   (2006-08-18 09:06:00) [55]

> после изменений в гриде ничего у меня не обновляется и не
> пересортировывается :(
значит у тебя нет отсортированного поля, то в каком порядке поля получены с сервера это не сортировка, вернее не локальная сортировка а на стороне сервера все правила которой там на сервере и остались...

> где-то видимо нужно параметр выставить.
там где данные, параметр(вернее метод) с таким ну совсем уж неассоциируемым ;о) названием - Sort. (ни за что не догадаться.... :о)))))


Rentgen   (2006-08-18 08:57:00) [56]

дело в том, что пользователь меняет значение в самом Гриде.
после изменений в гриде ничего у меня не обновляется и не
пересортировывается :(
где-то видимо нужно параметр выставить.
подскажите?


sniknik   (2006-08-18 08:38:00) [57]

ничего не делать... т.к.
> если изменить сортирующее поле, то должна пройти пересортировка.
если его изменить то сортировка таки происходит... подозрение правда что ты не там/не то меняеш... ну да это не проблема, меняй там и то.


Страницы:   1 2 3

Наверх

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