c16_reclink
c16_reclink(aConnection : resource, aSrcFileNo : int, aDstFileNo : int, aLinkNoOrSel : int, aOptions : int[, aReserved : int[, aLinkPos : int]]) : int
Verknüpften Datensatz lesen
Details
- aConnection: Verbindungsobjekt
- aSrcFileNo: Nummer der Ausgangsdatei
- aDstFileNo: Nummer der Zieldatei
- aLinkNoOrSel: Nummer der Verknüpfung oder Selektionsobjekt
- aOptions: Zugriffsposition
- aReserved: Reserviert, muss 0 enthalten (optional)
- aLinkPos: Zusätzliche Information zur Zugriffsposition (optional)
- Resultat: int Fehlerwert
- Siehe: Befehle der PHP-Schnittstelle , c16_recread() , c16_fldset() , c16_fldget()
Der Befehl liest einen verknüpften Datensatz und überträgt ihn in die Feldpuffer. Der Feldpuffer kann anschließend mit der Anweisung c16_fldget() in eine PHP-Variable gelesen werden.
Im Parameter (aConnection) wird das von c16_connect() bereitgestellte Verbindungsobjekt übergeben. Die Funktion führt einen Zugriff auf die Datei (aDstFileNo) durch. Aus dem zuvor gelesenen Datensatz aus der Datei (aSrcFileNo) werden aus den Verknüpfungsfeldern (inkl. der Felder für Zugriffspositionierung) der Verknüpfung (aLinkNoOrSel) 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 (aLinkNoOrSel) das Selektionsobjekt übergeben. Das Selektionsobjekt 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_rNoReczurückgeliefert._RecNext: Der nächste verknüpfte Satz wird geladen. Sofern kein weiterer verknüpfter Satz vorhanden ist, wird als Resultat_rNoReczurü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_rNoReczurückgeliefert._RecLock: Der gelesene Satz wird gesperrt. Dies ist nur dann der Fall, wenn_rOkzurü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_rOkzurückgeliefert wird. Wenn ein anderer Benutzer den Satz gesperrt haben sollte, so kann dieser Benutzer den Satz nicht mehr zurückspeichern. Daher sollte_RecForceLocknur 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_rLockedanstelle 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 (aOptions) die Option _RecPos angegeben, muss in (aLinkPos) die Position des zu lesenden Datensatzes übergeben werden. Der Parameter (aReserved) wird nicht benutzt, er muss 0 enthalten.
Der Erfolg der Datensatzoperation wird von der Funktion zurückgegeben. Bei der Überprüfung können folgende symbolische Konstanten verwendet werden:
0:_rOKDatensatzoperation erfolgreich.1:_rLockedDatensatz ist vorhanden und von einem anderen Benutzer gesperrt. Der Satz wurde geladen, sofern die Option_RecNoLoadnicht angegeben wurde.5:_rNoRecEs wurde kein Satz geladen, da entweder die Datei leer ist, oder kein vorhergehender bzw. nachfolgender Satz existiert.
Tritt bei der Verarbeitung ein Fehler auf, wird der Fehlerwert von der Anweisung zurückgegeben. Der Fehler kann ebenfalls mit den Anweisungen c16_error() oder c16_errortext() ermittelt werden. Folgende Fehler können auftreten:
C16_OK(0): Kein Fehler aufgetreten.C16ERR_SEL_HDL_INVALID(-208): SelektionsobjektaLinkNoOrSelungültig. Möglicherweise wurde die Selektion noch nicht durchgeführt.C16ERR_ARGS_FORMAT(-251): Anzahl der Argumente oder Typ eines Arguments ungültig.C16ERR_ARGS_TYPE(-252): Typ eines mehrtypigen Arguments ungültig.C16ERR_ARGS_CONNECTION(-254): Kein Verbindungsobjekt inaConnectionübergeben.C16ERR_ARGS_SELECTION(-255): Kein Selektionsobjekt inaLinkNoOrSelübergeben.C16ERR_NO_FILE(-601): Datei nicht vorhanden.C16ERR_NO_LINK(-606): Verknüpfung nicht vorhanden.C16ERR_LINK_INVALID(-608): VerknüpfungaLinkNoOrSelungültig.