Страница 1 из 1

Вставка строки в таблицу

Добавлено: 27 фев 2008, 08:53
Sergal
Доброго времени суток!

Firebird только начал пользовать.
Сталкнулся с проблемой.
Помогите разобраться.
Имеется три связанных таблицы:

Tab1 Tab2 Tab3
======= ======= =======
Pk T1_1--- Pk T2_1--- T3_1
T1_2 \ T2_2 \ T3_2
T1_3 \------Fk T2_3 \-------Fk T3_3

У таблиц каскадное удаление.
У Tab3 нет первичного ключа.
В таблице Tab3, при выборе строки в Tab2, отображаются данные,
к примеру, 8 строк.
Как вставить данные, например, между 4-й и 5-й строчкой?

Когда вставляю данные методом Insert(), данные вставляются
и отображаются как надо. Но после обновления набора данных
строчка появляется в конце, как в Append(), а не между 4-й и 5-й.

Добавлено: 27 фев 2008, 09:06
voltron
Такое невозможно в принципе. В базах данных нет понятия "порядок строк", новая строка ВСЕГДА добавляется в конец таблицы. Сортировка и вывод в определенном порядке - это задача запроса.

Добавлено: 27 фев 2008, 14:04
WildSery
1. Не использовать TIBTable
2. Использовать ORDER BY в запросе
3. Если чего непонятно - читать тут. Если эту статью не читал - обязательно всю статью, с начала.

Добавлено: 29 фев 2008, 00:57
kdv
voltron писал(а):новая строка ВСЕГДА добавляется в конец таблицы.
новая строка всегда добавляется НА СВОБОДНОЕ МЕСТО в страницах данных таблицы. Поэтому может попасть и в конец, и в начало, и в середину. Остальное корректно.