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

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



Память: 0.47 MB
Время: 0.027 c
1-41614
vic_vm
2003-10-25 20:29
2003.11.13
Не могу перевести C++ код на Delphi


1-41511
ss300
2003-10-28 13:38
2003.11.13
IniFile


3-40994
Term
2003-10-16 12:38
2003.11.13
Как сделать аналог автоинкремнтоного поля в dbf


3-40839
Alex_S
2003-10-17 10:50
2003.11.13
Некоторые записи не сохраняются


1-41699
Deathmaster
2003-11-03 23:12
2003.11.13
Превратить в десятичный вид вещественное число, записанное в 16-р




   Наверх