Zum Hauptinhalt springen

c16_selcopy

c16_selcopy(aConnection : resource, aFileNo : int, aNameSrc : string, aNameDst : string) : int

Selektion kopieren

Details

Mit dieser Funktion kann eine bestehende Selektion kopiert werden. Dabei werden nur die Abfragen, nicht aber eventuell vorhandene Ergebnismengen kopiert.

In (aConnection) wird das von dem Befehl c16_connect() bereitgestellte Verbindungsobjekt übergeben. Der Parameter (aFileNo) enthält die Dateinummer, in der die zu kopierende Selektion definiert ist. Die zu kopierende Selektion wird in Parameter (aNameSrc) angegeben, in Parameter (aNameDst) wird der Name der durch Kopieren neu erstellten Selektion bestimmt.

c16_selcopy() ermöglicht es, in einer Mehrbenutzerumgebung mehrere Benutzer gleichzeitig identische Selektionen durchführen zu lassen. Dazu wird eine Master-Selektion erstellt, die dann für den jeweiligen Benutzer temporär unter einem anderen Namen kopiert wird.

Da keine Ergebnismengen mitkopiert werden, muss die neu erstellte Selektion anschließend durchgeführt werden, um eine Ergebnismenge zu erhalten. Die Ergebnismenge der neuen Selektion kann dann mit den für eine Selektionsauswertung und -verarbeitung vorgesehenen Funktionen bearbeitet werden.

info

Der Rückgabewert des Befehls muss ausgewertet werden, um ein fehlerfreies Arbeiten der Funktion zu kontrollieren.

Beispiel:

// Name der Selektion erzeugen
$selnew = 'TMP_SEL_' . session_name();

// Selektion kopieren
$res = c16_selcopy($connection,1,'Customer',$selnew);

...

// Selektion löschen
$res = c16_seldelete($connection,$selnew);

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.
  • 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.
  • 5: _rNoRec Es wurde kein Satz geladen, da entweder die Datei leer ist, oder kein vorhergehender bzw. nachfolgender Satz existiert.
  • 6: _rExists Die Zielselektion existiert bereits.
  • 10: _rDeadlock Es ist eine Verklemmung aufgetreten.

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_VALUE (-253): Wert eines Arguments ungültig.
  • C16ERR_ARGS_CONNECTION (-254): Kein Verbindungsobjekt in aConnection übergeben.