DBselectSegmentObjectsByKeylist

Top  Previous  Next

Objekte in einem Segment nach Objektschlüssel selektieren.

Mit dieser Prozedur werden Objekte nach Objektschlüsseln als Selektionskriterium behandelt. Dabei wird nur das angegebene Segment nach dem Kriterium einer Schlüsselliste durchsucht.

Es stehen insgesamt vier Selektionskonstanten 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 Selektions-menge 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

segment (PSEGMENT)                              [IN]

Die Objekte aus diesem Segment werden unter der angegebenen Bedingung getestet. Bei einigen Bedingungen, etwa bei NEW, sind aber auch andere Objekte betroffen, indem sie aus der Selektionsliste entfernt werden.

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 in diesem Segment liegt und keinen Schlüssel aus der Schlüsselliste besitzt.

keylist (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 von keycnt darf nicht größer sein als die Anzahl der Schlüssel in keylist. 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 DBselectSegmentObjectsByKeylist (

     PSEGMENT          segment,

     SELECT_FUNKTION      fkt,

     KEY *             keylist,

     int                  keycnt

);

Verwandte Funktion

DBselectSegmentObjectsByKeygroup