Entwickler-Ecke

Datenbanken - Neuen index erstellen, und alten aktualisieren


Holla - Sa 30.11.02 18:39
Titel: Neuen index erstellen, und alten aktualisieren
Hallo,

weiß jemand wie man einen Index zur Laufzeit neu erstellt, und einen bestehenden Index aktualisiert?

Ich habs mit folgenden Code versucht

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
 Table1.Close;
   Table1.Exclusive := True;
   Table1.Open;
   except
       end;


    try
   res := DbiRegenIndexes(Table1.Handle);
   if res <>  DBIERR_NONE   then
   begin
   DBIError(res);
   end;
    except
end;
 Table1.Close;
    Table1.Exclusive := FALSE;
   try
   Table1.Open;
   except
   end;

Spätestens beim ersten Table.Open erhalte ich die Fehlermeldung, das die
Datenbank in Benutzung ist
Was kann ich machen?
Holla

(01.12. 11:20 Tino) Code-Tags hinzugefügt.


MrSpock - Sa 30.11.02 22:27

Hallo Holla,

mir ist nicht ganz klar, was du mit dem ersten Code-Teil erreichen willst. Einen Index hinzufügen funktioniert mit AddIndex.

Die Fehlermeldung deutet darauf hin, dass die Tabelle noch geöffnet ist. Deshalb kann sie nicht exklusiv geöffnet werden. Möglicherweise hast du in der IDE bei TTable Active auf True gesetzt?


Holla - So 01.12.02 13:00
Titel: Index erstellen
Hallo,
mit AddIndex habe ich es auch versucht, funktioniert überhaupt nicht bei mir.
Den obigen Code habe ich aus dem Forum geklaut, dachte so wüde man einen bestehenden Index aktualisieren


Holla - So 01.12.02 13:13
Titel: Index erstellen
Hallo Mr Spock,
dein Hinweis war genau der Punkt, ich hatte TTable.Active im Objectinspektor auf True gesetzt, nun funktionierst.
Danke