Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Вниз

Проблема с индексами   Найти похожие ветки 

 
Alex_VV   (2002-07-29 16:39) [0]

Мастера, помогите, 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 снова открываю
эту базу, убиваю индексы, создаю снова,
после чего сортировка работает.
Стоит опять добавить запись и опять ошибка
при сортировке :(
С индексом нужно отдельно работать что ли?
Или я вообще ничего не понял в базах?
Хелпните плиз, объясните.
Заранее спасибо.


 
Mike Kouzmine   (2002-07-29 16:53) [1]

Да нет, все верно. Единственно, надо сделать Primary индекс, если комбинация полей должна быть уникальна, то можно по ним, если нет, то добавить Autoinc и по нему сделать первичный индекс.


 
Alex_VV   (2002-07-30 21:44) [2]

Удаляю все вторичные индексы, помечаю все поля как ключевые (первичный индекс), но просматривая вторичный индек вижу что он опять существует.
Попытка отсортировать базу по второму полю опять приводит к все той же ошибке. А мне необходима сортировка именно по второму полю. Можно конечно поля поменять местами, если нет конечно иного выхода... :(


 
Aleksandr   (2002-07-30 21:53) [3]

1. У Вас наблюдаются совершенно ненужные строчки:

Table1.Edit - не нужна. Зачем переходить в режим редактирования, если после этого будет режим вставки? Ошибка сразу выходит...
Table1.Refresh - не нужна. Вы же работаете с этой таблицей, БДЕ сам отследит, что надо обновить.

2. Зачем все поля помечать как ключевые? Для этого достаточно одного поля автоинкрементного идентификатора. И что Вы имеете в виду под вторичными индексами и их "просматриванием"?


 
Anatoly Podgoretsky   (2002-07-31 09:31) [4]

Парадокс однако, что ты от него хотел
По твоей структуре явно просматривается, что поле Cod у тебя уникальное, вот его и сделай первичным ключом, а поле Vendor вторичным индексом, обслуживаемым.
Если же полен не уникальное, то первичным ключом оба поля, плюс два вторичных индекса



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
3-70953
SemFLY
2002-08-02 00:34
2002.08.22
TDBGrid добавление поля


3-71041
Nikolai_S
2002-07-31 15:29
2002.08.22
Как отменить выполнение SQL-запроса (SELECT) во время выполнения?


1-71115
Андрей Вдовин
2002-08-13 07:24
2002.08.22
Подсветка слов в RichEdit


14-71335
vads
2002-07-25 10:48
2002.08.22
Вопрос + предложение


3-70974
Alexsys
2002-07-29 20:36
2002.08.22
Возвращаясь к поиску по нескольким полям сразу...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский