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

Вниз

Индексы в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.012 c
14-43792
NAlexey
2004-02-18 15:06
2004.03.14
Pos - скорость.


14-43758
ищущий
2004-02-19 13:01
2004.03.14
параллельный вывод на lpt и com


4-43968
Duke DEE
2004-01-03 21:25
2004.03.14
Нажатие кнопки в другой программе


14-43821
Knight
2004-02-21 00:55
2004.03.14
Москвичи, требуется информация для размышления...


6-43713
qwerty
2004-01-07 23:03
2004.03.14
Как перехватить трафик





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