Lade...
 

CX_INDEX_MANAGER::ExistenceQuery

CX_INDEX_DESCRIPTOR::ExistenceQuery

Beschreibung:

Die Funktion generiert InstantView®-Code als Zeichenkette, wo

durch eine Query mit einem Queryausdruck über das indizierte Datenfeld ein beliebiges Objekt aus der indizierten Collection gefunden wird.  
Wenn der Datenbank-Index weder korrupt noch unvollständig ist¹), so muss

dieses Objekt gefunden werden. 

Achtung!

Werden mit dieser Methode alle Objekt der indizierten Collection getestet, so erhält man eine eindeutige Aussage über den Zustand des Datenbank-Indexes; vergleiche dazu Funktion

AllQuery().   

Code-Beispiel:
Var(indexDescriptor, testQuery, badIndex)

Define(CheckCompleteness)

   -> indexDescriptor
   indexDescriptor
Call(SetSystemLayerAndDomain)
   indexDescriptor
Call(ExistenceQuery) -> testQuery
   FALSE -> badIndex
   indexDescriptor
Call(GetCollection)
   iterate
   {  
  
   testQuery Execute ifnot { TRUE -> badIndex, quit }
   }

   badIndex
if
   {
  
   ("Index unvollständig: ", "Index not complete: ") indexDescriptor String *
     
Attention(AbortTXN) cancel

   };

Einige Beispiele für den durch Funktion ExistenceQuery() generierten Code:

Index Klasse Collection ist  generiert wird
uniqueID CX_ITEM REP Dup Copy(uniqueID) Dup if {
"uniqueID = %s" Find(CX_ITEM) Contains }
else { Drop(2) TRUE }
CX_STATE_MONITOR Datenfeld monitors
eines Objects
Dup Copy(uniqueID) Dup if {
"uniqueID = %s"
"<0|62|0|1138|10000>" GrabObject
Find(CX_STATE_MONITOR, monitors) Contains }
else { Drop(2) TRUE }
date CX_SALES_ORDER REP Dup Copy(date) Dup if {
"date = %CX_DATE"
Find(CX_SALES_ORDER) Contains }
else { Drop(2) TRUE }

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(IN) Top CX_INDEX_DESCRIPTOR Index
Stack(OUT) Top STRING   
Funktionsaufruf: Call(ExistenceQuery) Execute

¹) ein unvollständiger Datenbank-Index entsteht z.B., wenn ein

Datenfeld unter Umgehung der im ClassiX®-System implementierten

automatischen Indexnachführung verändert wird