Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
1-43647
RDen
2004-03-02 09:16
2004.03.14
Почему не видна созданная TLabel?


1-43587
denik
2004-02-27 10:23
2004.03.14
Как избавиться от скролинга в TreeView`e?


3-43290
comwad
2004-02-11 15:38
2004.03.14
Проблема с DBGrid


1-43661
European
2004-02-24 19:32
2004.03.14
Метки по оси Y в TChart


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




   Наверх