Reindeksacja tablic w danym aliasie

0

Jest procedura reindeksecji tablic za pomocą aliasu:

procedure Reindex(DataBase: TDataBase; Table: TTable;
ll: TLabel; ProgressBar: TProgressBar);
Var
List: TStrings;
i : Integer;
begin
try
Database.Connected := True;
except
raise;
exit;
end;
List := TStringList.Create;
// Utwórz listę nazw tablic w danym aliasie
Session.GetTableNames( Database.AliasName, '', True, False,
List);
for i := 0 to List.Count - 1 do begin
// Wyświetl informację o postępie indeksowania
if(Flaga_Przerwij) then
Break;
ll.caption:=' Indeksuję zbiór: '+List[i];
ProgressBar.Position := Trunc(100 * i / List.Count);
Application.ProcessMessages;
Table.Close;
// Podstaw nazwę tablicy
Table.TableName := List[i];
try
Table.Open;
// Otwórz tablicę i reindeksuj
Check(DbiRegenIndexes(Table.Handle));
except
raise;
end;
end;
List.Free;
// zniszcz obiekt
Database.Connected := False;
// Odłącz się od bazy danych
ProgressBar.Position := 0;
ll.caption:='';
end;

Wywołanie procedury można umieścić pod przyciskiem:
procedure TForm1.Button1Click(Sender: TObject);
begin
if(Flaga_Indeksuj) then
Flaga_Przerwij := True
else
if(ListBox1.ItemIndex <> -1) then begin
label1.visible:=true;
Flaga_Indeksuj := True;
Database1.AliasName:=ListBox1.Items[ListBox1.ItemIndex];
ListBox1.Enabled := False;
BitBtn1.Enabled := False;
Flaga_Przerwij := False;
Button1.Caption := 'Anuluj';
reindex(DataBase1, Table1, label1, ProgressBar1);
Button1.Caption := 'Start';
ListBox1.Enabled := True;
BitBtn1.Enabled := True;
Flaga_Indeksuj := False;
end;

i jest problem.
Wywala komunikat o tym że nie może rozpoznać słowa DbiRegenIndexes. Jest to z tego zo wiem API BDE ale czemu nie może tego rozpoznać? może coś w uses?

Pozdrawiam

0

(Delphi5)
W uses musisz dodać moduł BDE:
uses
Windows, SysUtils,...., BDE;

0

wielkie dzięki, jak wrócę do domu sprawdzę.

Dzięki! [cya]

1 użytkowników online, w tym zalogowanych: 0, gości: 1