![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с индексами [D5, Paradox]
Alex_VV © (2002-07-29 16:39:00)Мастера, помогите, pls!
Создаю в Database Desktop базу Paradox 7.
Два поля: Field Name | Type | Size
Cod Alpha 2
Vendor Alpha 20
По книжке создаю индекы (Secondary indexes)
в indCod поле Cod, в indVendor поле Venodr.
После добавления записей
Table1.Edit;
Table1.Insert;
Table1.FieldByName("Cod").asString:="A1";
Table1.FieldByName("Vendor").asString:="Поставщик";
Table1.Post;
Table1.Refresh;
пытаюсь сделать сортировку
Table1.IndexName="indVendor";
- ругается:
Index is out of date. :((
Судя по всему не обновляется индех.
В том же Database Desktop снова открываю
эту базу, убиваю индексы, создаю снова,
после чего сортировка работает.
Стоит опять добавить запись и опять ошибка
при сортировке :(
С индексом нужно отдельно работать что ли?
Или я вообще ничего не понял в базах?
Хелпните плиз, объясните.
Заранее спасибо.
Anatoly Podgoretsky (2002-07-31 09:31:00) [1]Парадокс однако, что ты от него хотел
По твоей структуре явно просматривается, что поле Cod у тебя уникальное, вот его и сделай первичным ключом, а поле Vendor вторичным индексом, обслуживаемым.
Если же полен не уникальное, то первичным ключом оба поля, плюс два вторичных индекса
Aleksandr (2002-07-30 21:53:00) [2]1. У Вас наблюдаются совершенно ненужные строчки:
Table1.Edit - не нужна. Зачем переходить в режим редактирования, если после этого будет режим вставки? Ошибка сразу выходит...
Table1.Refresh - не нужна. Вы же работаете с этой таблицей, БДЕ сам отследит, что надо обновить.
2. Зачем все поля помечать как ключевые? Для этого достаточно одного поля автоинкрементного идентификатора. И что Вы имеете в виду под вторичными индексами и их "просматриванием"?
Alex_VV (2002-07-30 21:44:00) [3]Удаляю все вторичные индексы, помечаю все поля как ключевые (первичный индекс), но просматривая вторичный индек вижу что он опять существует.
Попытка отсортировать базу по второму полю опять приводит к все той же ошибке. А мне необходима сортировка именно по второму полю. Можно конечно поля поменять местами, если нет конечно иного выхода... :(
Mike Kouzmine (2002-07-29 16:53:00) [4]Да нет, все верно. Единственно, надо сделать Primary индекс, если комбинация полей должна быть уникальна, то можно по ним, если нет, то добавить Autoinc и по нему сделать первичный индекс.