Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-1102442795
UVV
2004-12-07 21:06
2005.01.02
Добавление записи


11-1084644178
Константин
2004-05-15 22:02
2005.01.02
Где достать "exptIntf.dcu" для Delphi? (или пришлите)


1-1103117204
AbramovVi
2004-12-15 16:26
2005.01.02
TreeView


3-1101982342
msguns
2004-12-02 13:12
2005.01.02
ADO+MSAccess. Длинный запрос


3-1102310974
Fantasy
2004-12-06 08:29
2005.01.02
Help SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский