DBselectObjectsByKeylist

Top  Previous  Next

Objekte nach Objektschlüsseln selektieren.

Mit dieser Prozedur werden Objekte nach Objektschlüsseln als Selektionskriterium selektiert. Dabei werden alle Segmente durchsucht, die das Flag selectable gesetzt haben.

Es stehen insgesamt vier Selektionsfunktionen zur Verfügung. Mit OR werden die Objekte, deren Objektschlüssel in der Schlüsselliste liegen zur bestehenden Selektionsmenge hinzugefügt, mit AND werden nur solche Objekte in der Selektionsmenge belassen, die auch das neue Kriterium erfüllen oder in einem anderen Segment liegen. Mit NOT werden nur die Objekte in der Selektionsmenge belassen, die das neue Kriterium nicht erfüllen. Mit NEW wird die alte Selektionsmenge geleert und die Objekte, die das neue Kriterium erfüllen, werden zur Selektionsliste hinzugefügt. Das Kriterium für das Erfüllen der neuen Selektionsbedingung ist dabei, dass das Objekt einen Objektschlüssel besitzt, der in der mitgegebenen Liste der Schlüssel auftaucht. Die Liste kann beliebig lang sein und darf doppelte Einträge enthalten.

Parameter

root (PROOT)                                             [IN]

Das Handle der Datenbank, es werden alle Segmente mit dem Flag selectable berücksichtigt.

fkt (SELECT_FUNKTION)                         [IN]

Es stehen vier verschiedene Konstanten zur Verfügung:

SELECT_NOT  Ein Objekt wird aus der Selektionsliste entfernt, wenn es einen Schlüssel aus der Schlüsselliste besitzt.

SELECT_OR Ein Objekt wird in die Selektionsliste aufgenommen, wenn es einen Schlüssel aus der Schlüsselliste besitzt.

SELECT_NEW  Die Selektionsliste wird geleert und dann werden die Objekte in die Liste aufgenommen, die einen Schlüssel aus der Schlüsselliste besitzen.

SELECT_AND  Ein Objekt wird aus der Selektionsliste entfernt, wenn es keinen Schlüssel aus der Schlüsselliste besitzt. Es bleibt allerdings in der Liste, wenn es sich in einem nicht selektierbaren Segment befindet.

keys (KEY *)                                                [IN]

Zeiger auf eine Liste mit allen Schlüsseln, die betrachtet werden sollen. Die Liste darf doppelte enthalten.

keycnt (int)                                                   [IN]

Die Länge der Schlüsselliste. Die Größe, die in keycnt angegeben ist darf nicht größer sein, als die Anzahl der Schlüssel in keys. Der Wert von keycnt darf nicht negativ sein.

Ergebnis

(T_ERROR)                                            [OUT]

Wenn die Prozedur fehlerfrei ausgeführt wurde, ist das Ergebnis ERROR_OK, sonst eine der Fehlermeldungen aus error.h.

Deklaration

#include "database.h"

 

T_ERROR DLLENTRY DBselectObjectsByKeylist (

     PROOT             root,

     SELECT_FUNKTION      fkt,

     KEY *             keys,

     int                  keycnt

);

Verwandte Funktionen

DBselectObjectsByArea

DBselectObjectsByKeygroup

DBselectObjectsByObjectlist