![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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";
автоматически это делает. Выбери другое поле - оно тоже будет отсортировано...