c16_selcopy
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.
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:_rOK1:_rLocked3:_rNoKey5:_rNoRec6:_rExists10:_rDeadlock
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 inaConnectionübergeben.