Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Индексы в paradox   Найти похожие ветки 

 
norman ©   (2004-02-11 00:14) [0]

Есть программа, написанная на Delphi 3? работает с базой в paradox7 через BDE под системой w2k.
Полгода работала-работала и вдруг сбились индексы (при запуске пишет index out of date).
Таблица не открывается в Database desktop. Вручную снес файлы индексов. Таблица открылась. Создал заново индексы. Не работает.
После утомительной отладки нарисовалась такая картина:
Каждая новая запись командой insert добавляется ПЕРЕД ПОСЛЕДНЕЙ записью таблицы (если смотреть в database desktop естественный порядок записей). При этом после первой же вставки записи программа снова кричит, что индексы полетели и не хочет работать.
ВРУЧНУЮ в database desktop создал аналогичную по структуре новую пустую таболицу. Та же картина: одна запись добавляется без проблем, все остальные лезут перед ней и индекс портится.
А однажды при отладке выскочила ошибка, точного текста не помню, но смысл такой: index is read only. Еще заметил, что после вставки записи не обновляются дата и время изменения индексных файлов, сам файл таблицы db обновляется. В общем, склоняюсь к тому, что индексные файлы как-то заблокированы для изменения.
Может ли это быть?

BDE переставил.

Что дальше делать, пока не знаю.
Если поможете советом, буду благодарен.


 
Anatoly Podgoretsky ©   (2004-02-11 09:09) [1]

Может но маловероятно, особо если исходить из проверки в DBD, проверь аттрибуты файлов. Самое вероятно, что ты неправильно создал индексы.


 
Виталий Панасенко   (2004-02-11 09:44) [2]

И проверь, может забыл построить Primary key ? а только вторичные (*.x??/*.y??)? Если нет *.рх, то вторичные только для просмотра таблиц, менять ничего нельзя...


 
norman ©   (2004-02-11 21:43) [3]

Позор на мою голову!
И правда, забыл построить primary key.
Все доделал, проверил, заработало.
Благодарю.

Меня немного оправдывает только то, что изначально давным давно эту базу создавал не я, а мне она досталась с готовой структурой, которую я до этого случая не трогал.

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


 
Anatoly Podgoretsky ©   (2004-02-11 22:57) [4]

Самый надежный метод с головной болью, это что болит, то и отрубить, но ты говришь что это невозможно, Так что придется тебе с этим мириться.


 
norman ©   (2004-02-11 23:51) [5]

А если в обработчике исключения index out of date на лету грохнуть все индексы и их пересоздать.
Попробовал.
Из программы методом deleteindex не удалается Primary Key.
Пробовал удалить сам файл *.px.
Но потом методом addindex не могу создать primary key.
Пишет object not locked.
Свойство table1.exclusive=true.
(table1.addindex("","field1,[ixPrimary,ixUnique]) или я что-то путаю).

Не подскажете, как на лету создать primary key?
Заранее спасибо.


 
norman ©   (2004-02-13 01:14) [6]

А все-таки как?



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

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
7-43904
Alien
2003-12-24 05:37
2004.03.14
Как определить метку диска (дискеты...)


7-43911
WMag
2003-12-11 19:23
2004.03.14
Стабильный таймер


1-43614
Serginio666
2004-03-02 14:34
2004.03.14
Class var virtual в Delphi 8


3-43331
Layner
2004-02-16 11:52
2004.03.14
Преоборазование БД ACCESS *.mdb в файл *.mde, или как зищитить


1-43517
Grinder
2004-02-22 15:56
2004.03.14
высота колонки в list view