![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
что за ошибка?
werr © (2002-08-08 17:29:00)чужой ехе-шник выдает ошибку "index already exsists". Делал переиндексацию бд -- не помогло. Какие могут быть причины этой ошибки?
werr (2002-08-08 18:11:00) [1]спасибо, попробую...
Leran2002 (2002-08-08 17:54:00) [2]Не знаю вот может поможет, нашел когдато на форуме...
Регенерация это что-то типа пересоздания индексов, вот тебе кусок кода (только перед тем как запускать закрой свой проект, а-то Delphi будет блокировать таблицу), а да еще сделай резервные копии таблиц:
uses BDE;
...
function TableRegenIndexes(NrErr : byte;Tbl : TTable) : Boolean;
Var
YesEx,YesAct : byte;
S : String;
Res,Res1 : DBIResult;
CCC : array[0..255] of Char;
begin
YesEx:=0;
if Tbl.Exclusive then YesEx:=1;
YesAct:=0;
if Tbl.Active then YesAct:=1;
Tbl.Active:=FALSE;
Tbl.Exclusive:=TRUE;
Tbl.Active:=TRUE;
Res:=DbiRegenIndexes (Tbl.Handle);
Tbl.Active:=FALSE;
if YesEx<=0 then Tbl.Exclusive := FALSE;
if YesAct>0 then Tbl.Active:=TRUE;
if Res=0 then begin
Result:=TRUE;
end
else begin
if NrErr>0 then begin
Res1:=DbiGetErrorString (Res,CCC);
Str(Res,S);
S:="Ошибка реген.индекс.: "+S+" -> "+StrPAS(CCC)+" для : "+Tbl.TableName;
MessageBeep(mb_IconHand);
MessageDlg(S,mtError,[mbOk],0);
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Er:byte;
begin
TableRegenIndexes(Er,Table1);
end;
werr (2002-08-08 17:49:00) [3]таблицы открываются везде. В них все вроде как ок (записи соответствуют стандартам).
Leran2002 (2002-08-08 17:46:00) [4]
> werr (08.08.02 17:40)
Таблицы хотябы открываются, где нибудь???
werr (2002-08-08 17:40:00) [5]сорри, забыл указать базу -- dbase.
раньше все было ок
Leran2002 (2002-08-08 17:34:00) [6]А раньше нормально пахало???
И че за база, Paradox???
Val (2002-08-08 17:33:00) [7]возможно в программе делаются попытки создать индекс с именем, которое уже существует.Посмотрите какие существуют индексы, попробуйте удалить их, запомнив, естественно.