|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.10.2014, 12:44 | #1 |
Форумчанин
Регистрация: 21.01.2014
Сообщений: 389
|
Как переместить строку в Clientdataset
Привет.
Есть ClientDataSet в связке с DbGrid и DataSource. В ClientDataSet есть несколько строк и мне необходимо переместить одну из них, например вверх или вниз. Как это сделать? |
24.10.2014, 13:12 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну вообще-то в базах такое не допускается. Т.е. физическое перемещение строк. По крайней мере далеко не во всех. Однако если в таблице сделать некое числовое поле с скажем так порядковым номером, и сортировать по нему - можно устроить иммитацию перемещения записи, изменив значение этого поля, и переоткрыв набор заново.
Иначе... Даже не представляю зачем это понадобилось, если честно.
I'm learning to live...
|
24.10.2014, 13:16 | #3 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Как вариант. Для этого нужно иметь некоторое поле с уникальным значением (но не ключ) и индекс по нем, на клиенте. Пусть это будет некий порядковый номер. Тогда при перемещении вверх значение этого поля предшествующей и текущей записей меняем местами. Аналогично при перемещении вниз. Возможно кто-то предложит другой, более простой способ, хотя сомневаюсь сильно
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 24.10.2014 в 13:19. |
|
24.10.2014, 13:20 | #4 |
Форумчанин
Регистрация: 21.01.2014
Сообщений: 389
|
Stilet, база у меня используется в качестве хранения очереди, иногда нужно эту очередь немного перестроить и вот в этот момент мне понадобилась бы такая функция.
|
24.10.2014, 13:33 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
А вот сам DBGrid и прочие компоненты тогда не очень подходят для этого... ИМХО.
I'm learning to live...
|
|
24.10.2014, 13:46 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А в гриде и не надо править. Или кнопочки перемещения вверх/вниз, или драгдроп. А в обработчике обновление датасета и AppleUpdate коль это клиентдатасет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
24.10.2014, 14:09 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А ДБГрид позволит такие драгдропы?
I'm learning to live...
|
24.10.2014, 15:36 | #8 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
24.10.2014, 22:52 | #9 |
Форумчанин
Регистрация: 21.01.2014
Сообщений: 389
|
А может быть существует компонент в котором уже предусмотрен такой функционал?
|
25.10.2014, 10:54 | #10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Может и существует, но я о нем не знаю.
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как переместить строку ListBox вверх и вниз | Aleksandr | Общие вопросы Delphi | 1 | 18.04.2011 16:16 |
Переместить строку и данные в ячейку | kinogruppa | Microsoft Office Excel | 7 | 22.09.2009 21:53 |
Как переместить DXImageList ? | SG13 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 9 | 30.03.2008 11:54 |
Как переместить картинку? | Костя | Помощь студентам | 2 | 23.12.2006 17:53 |