C16_RecLink
C16_RecLink(const vPHANDLE aInstHdl, const vINT aSrcFileNo, const vINT aDstFileNo, const vXLONG aLinkNo, const vFLAGS aFlags, const vINT unused, const vINT aLinkPos) : vERROR
Verknüpften Datensatz lesen
Details
- aInstHdl: Instanz-Handle
- aSrcFileNo: Nummer der Ausgangsdatei
- aDstFileNo: Nummer der Zieldatei
- aLinkNo: Nummer der Verknüpfung
- aFlags: Zugriffsposition
- unused: unbenutzt, muss 0 enthalten
- aLinkPos: Zusätzliche Information zur Zugriffsposition
- Resultat: vERROR Fehlerwert
- Siehe: Befehle der Programmierschnittstelle , C16_RecRead()
Der Befehl liest einen verknüpften Datensatz und überträgt ihn in die Feldpuffer.
Im Parameter (aInstHdl) wird der von C16_InitInstance() bereitgestellte Instanz-Handle, der in der Funktion C16_OpenArea() zum Öffnen der Datenbank verwendet wurde, übergeben. Die Funktion führt einen Zugriff auf die Datei (aDstFileNo) durch. Aus dem zuvor gelesenen Datensatz aus der Datei (aScrFileNo) werden aus den Verknüpfungsfeldern (inkl. der Felder für Zugriffspositionierung) der Verknüpfung (aLinkNo) ein Schlüsselwert gebildet und auf den Satz in der Zieldatei zugegriffen. Ist kein Datensatz mit dem entsprechenden Schlüssel vorhanden, wird der Datensatz mit dem nächst größeren bzw. dem größten Schlüssel geladen.
Soll auf eine Selektionsmenge zugegriffen werden, wird in dem Parameter (aLinkNo) der in Ganzzahlig gewandelte Selektionsdeskriptor übergeben. Der Selektionsdeskriptor muss zuvor mit C16_SelOpen() angelegt worden sein.
- _RecFirst: Der erste verknüpfte Satz wird geladen.
- _RecLast: Der letzte verknüpfte Satz wird geladen.
- _RecPrev: Der vorherige verknüpfte Satz wird geladen. Sofern kein weiterer verknüpfter Satz vorhanden ist, wird als Resultat _rNoRec zurückgeliefert.
- _RecNext: Der nächste verknüpfte Satz wird geladen. Sofern kein weiterer verknüpfter Satz vorhanden ist, wird als Resultat _rNoRec zurückgeliefert.
- _RecPos: Der Zugriff findet über die Verknüpfungsposition statt (vgl. C16_RecLinkInfo() ), die in (aLinkPos) übergeben werden muss. Da die Position exakt verarbeitet wird, liegen gültige Werte im Bereich von 1 bis zur Anzahl verknüpfter Sätze, andernfalls wird _rNoRec zurückgeliefert.
- _RecKeyReverse: Die Schlüsselreihenfolge in der mit _RecPrev, _RecNext und _RecPos zugegriffen wird, kann mit dieser Konstanten umgekehrt werden.
- _RecLock: Der gelesene Satz wird gesperrt. Dies ist nur dann der Fall, wenn _rOk zurückgeliefert wird. Ist der Satz durch einen anderen Benutzer gesperrt, ist das Resultat _rLocked.
- _RecForceLock: Der gelesene Satz wird gesperrt, ohne Rücksicht auf eine Sperre durch einen anderen Benutzer. Die Sperre ist nur dann erfolgt, wenn _rOk zurückgeliefert wird. Wenn ein anderer Benutzer den Satz gesperrt haben sollte, so kann dieser Benutzer den Satz nicht mehr zurückspeichern. Daher sollte _RecForceLock nur in den Fällen erfolgen, in denen ein Satz unbedingt und ohne Rücksicht auf andere Benutzer gesperrt werden muss. Die Sperre schlägt fehl, wenn der Datensatz durch andere Benutzer gemeinsam (_RecSharedLock) gesperrt ist oder der Datensatz in diesem Moment gerade geschrieben oder gelöscht wird. Wird _rLocked zurückgegeben, kann der Befehl nach kurzer Zeit erneut versucht werden.
Fahrlässiger Umgang mit dieser Option kann zur Inkonsistenz des Datenbestandes führen.
- _RecUnlock: Der gelesene Satz wird entsperrt.
- _RecCheckLock: Der Sperrstatus des Satzes wird überprüft. Das Resultat ist _rLocked anstelle von _rOk, wenn ein anderer Benutzer den Satz gesperrt hat. Der Sperrstatus wird nicht verändert.
- _RecTest: Hierbei erfolgt der Zugriff nur auf den Schlüssel der Zieldatei. Es wird nicht auf den Datensatz zugegriffen, daher ist die Angabe einer Sperroption ohne Wirkung.
- _RecNoLoad: Der gelesene Datensatz wird nicht in die Feldpuffer übertragen.
Wird in (aFlag) die Option _RecPos angegeben, muss in (aLinkPos) die Position des zu lesenden Datensatzes übergeben werden. Der Parameter (unused) wird nicht benutzt, er muss 0 enthalten.
Soll der verknüpfte Datensatz aus einer Selektionsmenge gelesen werden, wird anstelle der Verknüpfungsnummer der Deskriptor des Selektionspuffers angegeben. Dabei muss ein Cast des Deskriptors auf vINT verwendet werden.
Der Erfolg der Datensatzoperation wird von der Funktion zurückgegeben. Bei der Überprüfung können folgende symbolische Konstanten verwendet werden:
- 0: _rOK Datensatzoperation erfolgreich.
- 1: _rLocked Datensatz ist vorhanden und von einem anderen Benutzer gesperrt. Der Satz wurde geladen, sofern die Option _RecNoLoad nicht angegeben wurde.
- 5: _rNoRec Es wurde kein Satz geladen, da entweder die Datei leer ist, oder kein vorhergehender bzw. nachfolgender Satz existiert.