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

Вниз

Помогите с восстановлением рухнувшего индекса БД средствами Delph   Найти похожие ветки 

 
Ander   (2004-07-08 12:21) [0]

Проблема такая:
Небольшая база данных формата Paradox (10 столбцов, 400-500 строк). Есть автоинкрементное поле, по которому построен первичные индекс, а также вторичный индекс построенный по трем полям.
При некорректном завершении работы программы постоянно рушиться индекс базы данных.
Как можно переиндексировать базу для восстановления индекса.
Люди добрые, помогите пожалуйста, или подскажите, где про это можно прочитать.
Заранее благодарен.


 
Anatoly Podgoretsky ©   (2004-07-08 12:27) [1]

В рамках КОЛ?


 
Семен Сорокин ©   (2004-07-08 18:04) [2]

function ReindexBase(aDB: TDatabase): boolean;
var
  _i   : integer;
  _list: tStrings;
begin
 Result := true;
 aDB.CloseDataSets;
 _list := tStringList.Create;
 try
  Session.GetTableNames(aDB.DatabaseName, "*.db", false, false, _list);
  for _i := 0 to _list.Count - 1 do
   with TTable.Create(nil) do
    try
     DatabaseName := aDB.DatabaseName;
     TableType    := ttParadox;
     Exclusive    := true;
     TableName    := _list[_i];
     try
      Active       := true;
      Check(dbiRegenIndexes(Handle));
     except
      on E: Exception do begin
       MessageDlg("Ошибка переиндексации:" + E.Message, mtError, [mbOk], 0);
       Result := false
      end
     end
    finally
     Close;
     Free
    end
 finally
  _list.Free
 end
end;


 
Ander   (2004-07-13 06:00) [3]

Спасибо, сейчас попробую.



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

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

Наверх




Память: 0.47 MB
Время: 0.039 c
9-1082710156
Yar-Com
2004-04-23 12:49
2004.08.08
Библиотека для работы с SSE/SSE2


14-1089973515
вразлет
2004-07-16 14:25
2004.08.08
Должностные инструкции


6-1086845012
AndrewK
2004-06-10 09:23
2004.08.08
Как отправить письмо с уведомлением о доставке


14-1090425207
Undert
2004-07-21 19:53
2004.08.08
Что быстрее ?


14-1090484068
Festa
2004-07-22 12:14
2004.08.08
Что правильнее?