Lade...
 

GetDataField(char *name, ...)

GetDataField(char *name, ...)

void *GetDataField(char *name, short *n, CXS_ACCESS_PATH *path, short force = FALSE)

Parameter Beschreibung
name ein Zugriffsausdruck (Input)
n Anzahl der Terme im Zugriffspfad (Output)
path Zugriffspfad (Output)
force Slot erzeugen? (Input)

 
Rückgabewert Beschreibung
Pointer Speicheradresse des Datenfelds

Rückgabewert NULL bedeutet, dass das Ziel des Zugriffsausdrucks nicht erreicht wurde. Das kann verschiedene Ursachen haben:

Term Ursache ret. type
name Member NICHT in DDI und KEIN Slot NULL IDX_NOTHING
( - 1)
name Objekt besitzt diesen Slot NICHT und force=FALSE NULL Typ des Slots
name-> Pointer mit Wert NULL NULL IDX_POINTER, IDX_REL_11 oder IDX_REL_1M
name[k]
Collection mit weniger als k Elementen NULL IDX_COLL, IDX_REL_M1 oder IDX_REL_MN
name() Funktion gibt NULL zurück NULL IDX_UNDEFINE
(0)

Diese Funktion realisiert den Zugriff auf ein Datenmember über das DDI.
Auch auf einen Slot kann man zugreifen und mit dem letzten Parameter sogar verlangen, dass dieser für den schreibenden Zugriff erst erzeugt wird - Voraussetzung ist ein Eintrag im Slot-Dictionary.
Da man oft nur am Ziel des Zugriffsausdrucks interessiert ist, existiert eine einfachere Variante dieser Funktion:

void *GetDataField(char *name, OBJECTID *type = NULL, short force = FALSE);

Parameter Beschreibung
name ein Zugriffsausdruck (Input)
type Datentyp (Output)
force Slot erzeugen? (Input)

 
Rückgabewert Beschreibung
Pointer Speicheradresse des Datenfelds