Главная страница
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
14-43764
BVV
2004-02-19 13:01
2004.03.14
Телефонная книга


6-43717
|e0|0uP
2004-01-07 19:06
2004.03.14
ClientSocket.Socket.SendTex( );


3-43350
GogaStar
2004-02-16 13:52
2004.03.14
Как побороть


14-43810
syte_ser78
2004-02-22 00:29
2004.03.14
free delphi


1-43626
Builder
2004-03-03 20:00
2004.03.14
TTimer