Lade...
 

CX_INDEX_DESCRIPTOR::DeactivateIndex

CX_INDEX_DESCRIPTOR::DeactivateIndex

Beschreibung:

Diese Funktion deaktiviert den Index, d.h. löscht ihn aus Sicht der Datenbank.

Achtung: Wird der Abbau des Index auf mehrere Transaktionen aufgeteilt wird die aktuelle Transaktion, in dem der Aufruf stattfindet, automatisch beendet (commit). Sollte der Indexabbau dann nicht erfolgreich sein, oder nach dem erfolgreichen Abbau tritt ein Fehler auf, so sind trotzdem alle vor dem Aufruf durchgeführten Änderungen in der Datenbank durchgeführt worden. Der Index ist damit ungültig. In bestimmten ObjectStore-Version 6.3 vor SP 23 und 7.1 vor SP 3 konnte es aber passieren, dass dieser Index anschließend nicht korrekt auf oder abgebaut werden konnte. Daher ist vor Verwendung in Produktion ein entsprechender Test nötig.

Ab ObjectStore Version 6.3 SP 23 und 7.1 SP 3 verwaltet die Datenbank die AddressSpace-Freigabe selbst. Der Parameter ist dann immer auf 0 zu setzen.

Code-Beispiel::

Var(x)
CreatePersObject(CX_TEST_OBJECT_REP) -> x
"bla" x Put(testString)

CX_TEST_OBJECT_REP 0 "testString" ORDERED COPY_KEY | GetManager(INDEX) Call(AddREPIndex)
0 Over Call(ActivateIndex)

// ....

0 Swap Call(DeactivateIndex)

 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_INDEX_DESCRIPTOR Index
  Top-1 INTEGER Verarbeite n Objekte pro Transaktion; 0 = Indexoperation nicht aufteilen
Stack(Out) Top - -

Funktionsaufruf: Call(DeactivateIndex)