Форум: "Базы";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
ВнизИндексирование в Paradox БД Найти похожие ветки
← →
Script (2004-12-03 10:50) [0]Возникла такая проблемка(скорее всего смешная). Есть таблица в ней много полей и два индекса(IND_FIO и IND_Ochered). Нужно отсортировать таблицу по очереди(Table1.IndexName:="IND_Ochered") и програмно изменить значения очереди у ряда челов на определенную велечину. Я делаю так:
for i:=1 to Count do
begin
Table1.Edit;
Table1.FieldByName("Ochered").AsInteger:=Table1.FieldByName("Ochered").AsInteger+Step;
Table1.Next;
end;
Проблема в том что когда изменяется значение очереди у первого чела, то таблица автоматически пересортируется и этот чел выпадает из ряда...короче полная х..ня получается. Пробовал писать перед началом цикла Table1.IndexName:="" не помогает(пересортируется по primary index). Вот такая глупая проблема. Помогите кто чем сможет 8-)
← →
Александр Иванов © (2004-12-03 10:58) [1]А по какому условию происходит изменение?
Попробуй так:for i:=1 to Count do
begin
Table1.Edit;
while <уловие> do
Table1.FieldByName("Ochered").AsInteger:=Table1.FieldByName("Ochered").AsInteger+Step;
Table1.Next;
end;
← →
Script (2004-12-03 11:09) [2]Не. Условие тут не при чем. Пользователь тыкает на DBGrid на первую запись, вводит count и step. Потом нажимает Button и кусок очереди обрабатывается. Тут imho надо как-то отключить индексирование 8-)) чтобы сразу после изменения записи она не меняла своего положения, а то по Table.Next переход будет не на нужную запись а вообще хз куда.
← →
ЮЮ © (2004-12-03 11:20) [3]1)
Закрыть Table1
Выполнить запрос
"Update Table SET Ochered = Ochered + " + IntToStr(Step)
Открыть Table1
2)
Table1.DisableControls;
Table1.IndexName:=""; // или "IND_FIO"
твой цикл
Table1.IndexName:="IND_Ochered";
Table1.EnableControls;
← →
ЮЮ © (2004-12-03 11:37) [4]Вопрос на засыпку: "А почему очередь не уменьшается, а растет?" Муниципальноё жильё, небось, распределяете? :)
← →
Script (2004-12-03 11:55) [5]В точку. 8-)))
← →
ЮЮ © (2004-12-03 11:58) [6]>и програмно изменить значения очереди у ряда челов на определенную велечину
Тогда 2) не пойдет, т.к. этот ряд определяется как раз их текущим номером.
А в 1 надо добавить
WHERE Ochered >= <очередь первого кинутого чела>
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c