C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
onDragDrop
Oper01
Отправлено: 27.09.2006, 12:36


Станционный диспетчер

Группа: Участник
Сообщений: 145



Здравствуйте.

Подскажите, как реализовать перетаскивание записи в компоненте TRxDBGrid ?
Необходимо менять порядок следования записей в таблице.

Подключаюсь через ADO к базе Access.
Admin
Отправлено: 27.09.2006, 19:24


Владимир

Группа: Администратор
Сообщений: 1190



Может быть обычная сортировака по какомо-ту из полей поможет ?

Если нет — требуется какой-то свой алгоритм расположения записей,
или просто — "хочу сначала эту запись, потом эту"
то ввести в таблицу некое дополнительное поле 'порядок сортировки'
и в нем вести номер записи по порядку отображения на экране,
и при выводе грида — ставить сортировку по этому полю.

Для изменении порядка следования записей — достаточно ввести
новое значение в это поле нужной записи/записей.
Oper01
Отправлено: 02.10.2006, 10:44


Станционный диспетчер

Группа: Участник
Сообщений: 145



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

Буду думать. Спасибо за уделённое внимание.
AVC
Отправлено: 02.10.2006, 11:16


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
"хочу сначала эту запись, потом эту" — нужно именно так, но дополнительное поле добавить нельзя — работаем с тем что есть.

В такой постановке ни как. Сервер имеет право хранить записитак как это выгодно ему а не вам. Если сортировка не определена, то в общем случае порядок следования записей не определен (даже при повторных выполнениях запроса).

Для ситуации "хочу сначала эту запись, потом эту" дополнительное поле самое оно. Если нет возможности создать его в основной таблице томожно использовать дополнительную типа MainTable_PKValue, Ord. Сортировать по орд и вызывать записи основной через связь.

Вернуться в Работа с базами данных в C++Builder