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

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

Проблема с индексами [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 и по нему сделать первичный индекс.


Наверх

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