Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ClientDataSet & Index [D5]


Sectey ©   (2003-04-01 10:56:00) 

Пытаусь удалить индекс у ClientDataSet объект индекса удаляется а вот индексация остается. Почему?
Пример:
// создаю индекс
ClientDataset.AddIndex("Cur","MainId",[ixCaseInsensitive],"");
// устанавливаю индекс
ClientDataSet.IndexName := "Cur";

...

// сбрасываю индекс
ClientDataSet.IndexName := "";
// удаляю индекс
ClientDataSet.IndexDefs.Delete(ClientDataSet.IndexDefs.IndexOf("Cur"));
// И ВОТ САМОЕ ИНТЕРЕСНОЕ
ClientDataSet.IndexName := "Cur";
// Мы опять устанавливаем индексацию по индексу который удален
// И действительно индексация устанавливается ПОЧЕМУ?

КАК МОЖНО УДАЛИТЬ ИНДЕКС ВМЕСТЕ С САМОЙ ИНДЕКСАЦИЕЙ?


les   (2003-04-02 00:46:00) [1]

> Зачем тебе маятся с индексом и его удалением?
Тоже интересно. Зачем?

> во-вторых, просто запиши в IndexFieldNames через ; имена
> полей

Ето у нас будет временний индекс, т.е. каждий раз при присвоениии полей он будет строиться по новому. А если чеерз IndexName то постоянний, т.е. один раз построили и потом переключаемся. Хотя если таблиця небольшая... Ну вот здесь написано:
http://bdn.borland.com/article/0,1410,29056,00.html

To Romkin - а у тебя откуда такая фенька на Анкете (©) а?


Romkin   (2003-04-01 12:54:00) [2]

Зачем тебе маятся с индексом и его удалением? Во-первых, можно создать сколько хочешь индексов, во-вторых, просто запиши в IndexFieldNames через ; имена полей без пробелов - и все будет отсортировано по ним


Sectey   (2003-04-01 11:24:00) [3]

>Romkin ©

Вот и я про тоже удалю определение, а КАК МНЕ УДАЛИТЬ САМ ИНДЕКС?


Sectey   (2003-04-01 11:22:00) [4]

Я понимаю, что будет отсартировано.
Но при этом имя индекса необходимо менять и оно уже не будет Cur.
А мне необходимо чтобы имя индекса оставалось постоянным а поля по которым строится данный индекс менялись.
Получается что раз создав индекс ничего с ним сделать невозможно, это ТАК?


Romkin   (2003-04-01 11:21:00) [5]

Не путай человека - ты говоришь о IndexFieldNames, а это немного другое
Вопрос: а зачем тебе удалять индекс у TClientDataSet ?
Если ты удалил индекс из Defs, это значит, ты удалил определение, но не индекс


Соловьев   (2003-04-01 11:17:00) [6]


> Выбери другое поле - оно тоже будет отсортировано...


Sectey   (2003-04-01 11:11:00) [7]

>Соловьев ©

>там индекс и создавать не надо.
Что значит не надо? Индекс создается но создается не как отдельный файл.


Соловьев   (2003-04-01 10:58:00) [8]

там индекс и создавать не надо.
ClientDataSet.IndexName := "Cur";
автоматически это делает. Выбери другое поле - оно тоже будет отсортировано...


Наверх

Титульная страница Поиск, карта сайта Написать письмо