Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

что за ошибка?


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]

возможно в программе делаются попытки создать индекс с именем, которое уже существует.Посмотрите какие существуют индексы, попробуйте удалить их, запомнив, естественно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо