lodyr

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору V1s1ter Цитата: ни Absolut Database ни (далее следует длинный список) не гарантируют сохранение номера записи и ее положение в пространстве таблицы | Как я и писал выше. Я в этом убедился Цитата: Нет, это глюк. Это происходит, когда из базы удаляешь много записей или целую таблицу, при этом идёт интенсивное добавление других записей. Всё работает, как положенно до определённого момента, пока не вмешивается механизм "free space recycling". Кстати, выявил я это с мощью их родного Менеджера ("AbsDb Manager"), который и показал, что несколько последних из добавляемых записей, попали в середину таблицы, а не в конец. -------------------------------------- Из своего опыта работы с базами(не с серверами баз) я знаю, что физическое положение записи НЕ зависит даже от Индекса! Это прямо написано в документации Microsoft. СУБД использует индекс для сортировки при выводе записей. Но все это относится к тем базам, которые пошли по следам Microsoft и масштабируемым монстрам. С Абсолютом - всё таки другой случай, поверьте. -------------------------------------- И ещё, если может кто не знает, чтобы не наступать на "грабли" При связке Таблица Базы+ДатаСоурс+ДБНавигатор+ДБГрид, если надо добавить (а не вставить!) запись кнопкой навигатора, то после её нажатия в ДБГрид запись становится не последней, а предпоследней! В ДБНавигаторе по умолчанию установлена функция "Вставить", а не "Добавить", как гласит его кнопка! Это можно легко изменить в соответствующем событии нажатия кнопки Навигатора: Цитата: procedure Tfrm.DBNavigator1BtnInsert(Sender: TObject); begin if nAppend.Checked then Table1.Append // Добавили else Table1.Insert; // вставили end; | Добавлено: Цитата: и думаю Вы ее уже решили с помощью какого нибудь индекса. | Конечно решил, но в том то и дело, что НЕ с помощью индекса. Я ведь писал, что в задачу входило идти по прошлой Истории (т.е. выбирать формулы в строгой последовательности, как было до очередного шага итерации) |