Вверх ↑
Ответов: 2125
Рейтинг: 159
#1: 2007-09-02 15:14:33 ЛС | профиль | цитата
nesco, я бы всё-таки не советовал использовать в своей практике rowid, по крайней мере потому, что это не является стандартом SQL. Стандартное решение в данном случае: добавить поле MySort и сортировать в запросе по нему, при вставке записи записывать в него максимальное значение +1 (для вообще первой записи, например 1), чтобы переставить записи достаточно лишь обменять у них это поле, например так:
update MyTable set MySort=(%1+%2)-MySort where MySort=%1 or MySort=%2[/code]
чтобы вставить запись после записи со значением MySort=%1 нужно сначала отодвинуть записи так:
update MyTable set MySort=MySort+1 where MySort>%1[/code]
а потом вставить запись со значением MySort=%1+1
Удалять записи можно как обычно.

Для увеличения быстродействия желательно это поле проиндексировать.
карма: 1

0