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

Вниз

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

 
grifon-nn   (2003-10-21 22:27) [0]

Подскажите пожалуйста, мне нужно сделать автоматическое восстановление индексов в БД при загрузке программы. Чем можно воспользоваться? Может есть какие компоненты?


 
Pat   (2003-10-21 23:59) [1]

Ой блин...БД и так грузится долго, а еще и восстановление индексов. Делай восстановление опционально - если не можешь подключиться к какой-либо таблице или сделай отдельный exe"шник для восстановления базы.

P.S. Можно юзать TUtil32.dll - сама все за тебя сделает. Есть прога с исходниками..мыль - скину


 
grifon-nn   (2003-10-22 02:50) [2]

написал такой код:

TblName.Exclusive := True;
TblName.Open;
try
Check(DbiRegenIndexes(TblName.Handle));
finally
TblName.Close;
TblName.Exclusive := FALSE;
end;


Но при попытке восстановить индексы, вываливается сообщение: "must use baseorder for this operation"

Подскажите что я ещё не сделал. Может надо ещё что-то закрыть/открыть...


 
grifon-nn   (2003-10-22 17:25) [3]

Pat © (21.10.03 23:59) [1]
Спасибо, письмо получил. Таблицу он вроде как восстановил, но при попытке добавить новую запись, он выдает ошибку "Key violation". Т.е. получается что индексы он не восстановил :(


 
Mike Kouzmine   (2003-10-22 17:31) [4]

А может восстановил, но дело не в индексах?


 
grifon-nn   (2003-10-22 17:38) [5]

Mike Kouzmine © (22.10.03 17:31) [4]
А в чем?
Когда я таблица пустая (или восстанвленная другим образом), то всё добавляется. А так появляется ошибка...
А чем может быть ещё вызвано такое сообщение?


 
Anatoly Podgoretsky   (2003-10-22 17:41) [6]

Нарушением например первичного ключа, если в качестве него используется автоинкриментное поле. Сбился счетчик.


 
grifon-nn   (2003-10-22 17:49) [7]

Да, значит скорее всего он. А как это можно исправить программным путем?


 
TP   (2003-10-22 17:59) [8]

1. Прочитать информацию о индексах.
2. Удалить индексы.
3. Перевести Autoincremnt в Integer.
4. Создать индексы заново.
5. Перевесди Integer в Autoincremnt.
Работает долго, но надёжно.


 
grifon-nn   (2003-10-22 19:07) [9]

спасибо за совет. все получилось



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

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

Наверх




Память: 0.45 MB
Время: 0.034 c
3-40927
Sulimxar
2003-10-12 23:21
2003.11.13
Перенос преложений БД на другие машины


6-41792
Alibaba
2003-09-18 00:42
2003.11.13
Как скопировать файл на ftp


4-42243
mitur
2003-09-13 18:00
2003.11.13
Как вернуть в программу выделенный текст активного окна?


6-41821
SDF
2003-09-15 06:53
2003.11.13
Работа с сокетами


14-42113
denkop
2003-10-23 00:51
2003.11.13
Купил цифровую видеокамеру, хочу вынуть из неё цифровое видео





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