Zum Hauptinhalt springen

c16_recread

c16_recread(aConnection : resource, aFileNo : int, aKeyNoOrSel : mixed, aOptions : int[, aAddInfo : int]) : int

Datensatz lesen

Details

  • aConnection: Verbindungsobjekt
  • aFileNo: Dateinummer
  • aKeyNoOrSel: Schlüsselnummer oder Selektionsobjekt
  • aOptions: Zugriffsposition
  • aAddInfo: Zusätzliche Information (optional)
  • Resultat: int Fehlerwert
  • Siehe: Befehle der PHP-Schnittstelle , c16_reclink()

Liest einen Datensatz und überträgt ihn in die Feldpuffer.

Im Parameter (aConnection) wird das von c16_connect() bereitgestellte Verbindungsobjekt übergeben. Die Funktion führt einen Zugriff über den Schlüssel (aKeyNoOrSel) in die Datei (aFileNo) durch. Der Schlüssel wird aus den aktuellen Feldinhalten der Datei gebildet. 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. Nach dem erfolgreichen Aufruf der Funktion, steht der gelesene Datensatz in den Feldpuffern.

Das Übertragen der Feldpuffer in PHP-Variablen und umgekehrt erfolgt über die Anweisungen c16_fldget() bzw. c16_fldset() .

Soll auf eine Selektionsmenge zugegriffen werden, wird in dem Parameter (aKeyNoOrSel) das Selektionsobjekt übergeben. Das Selektionsobjekt muss zuvor mit c16_selopen() angelegt worden sein.

Die Zugriffsposition wird über den Parameter (aOptions) angegeben. Folgende symbolische Konstanten können angegeben werden:

  • _RecFirst: Der Satz mit dem kleinsten Schlüsselwert wird gelesen.
  • _RecLast: Der Satz mit dem größten Schlüsselwert wird gelesen.
  • _RecPrev: Der Satz mit dem nächst kleineren Schlüsselwert wird geladen. Sofern kein weiterer Satz vorhanden ist, wird als Resultat _rNoRec zurückgeliefert.
  • _RecNext: Der Satz mit dem nächst größeren Schlüsselwert wird geladen. Sofern kein weiterer Satz vorhanden ist, wird als Resultat _rNoRec zurückgeliefert.
  • _RecPos: Anstatt über den aktuellen Schlüsselwert wird über die Schlüsselposition zugegriffen. Die Position wird in (aAddInfo) übergeben.
  • _RecLock: Der gelesene Satz wird gesperrt. Dies ist nur dann der Fall, wenn _rOk zurückgeliefert wird (eindeutiger Schlüssel). Ist der Satz durch einen anderen Benutzer gesperrt, so 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. 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.
  • _RecID: Es wird der Datensatz mit einer bestimmten Datensatz-ID gelesen.

Der Parameter (aAddInfo) ist optional, er hat zwei verschiedene Bedeutungen. Bei der Benutzung der Option _RecPos wird hier die gewünschte Schlüsselposition übergeben. Ist der Parameter (aKeyNoOrSel) gleich 0, wird die ID des gewünschten Satzes übergeben. Die Optionen _RecTest und _RecPos sind dabei nicht möglich, da kein Schlüsselzugriff erfolgt. Dadurch gibt es auch die Resultate _rNoKey und _rMultiKey nicht. Ist der Satz mit der angegebenen ID nicht vorhanden, wird _rNoRec zurückgeliefert und kein Satz geladen. Dies gilt nicht, wenn _RecFirst, _RecLast, _RecNext oder _RecPrev benutzt 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.
  • 2: _rMultiKey Der Schlüssel ist nicht eindeutig. In der Datei sind mehrere Sätze mit dem gewünschten Schlüsselwert vorhanden, der erste Satz wurde geladen.
  • 3: _rNoKey In der Datei ist kein Satz mit dem gewünschten Schlüsselwert vorhanden. Es wurde der Satz mit dem nächst größeren Schlüsselwert geladen.
  • 4: _rLastRec In der Datei ist weder ein Satz mit dem gewünschten Schlüsselwert noch ein Satz mit einem größeren Schlüsselwert vorhanden. Es wurde der Satz mit dem größten Schlüsselwert geladen.
  • 5: _rNoRec Es 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_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 in aConnection übergeben.
  • C16ERR_ARGS_SELECTION (-255): Kein Selektionssobjekt in aKeyNoOrSel übergeben.
  • C16ERR_NO_FILE (-601): Datei nicht vorhanden.
  • C16ERR_NO_KEY (-604): Schlüssel nicht vorhanden.