Zum Hauptinhalt springen

c16_call

c16_call(aConnection : resource, aProcName : string[[, aParameter : mixed]]) : mixed

CONZEPT 16-Funktion aufrufen

Details

  • aConnection: Verbindungsobjekt
  • aProcName: Prozedurname in der Datenbank
  • aParameter: Parameter (optional)
  • Resultat: mixed Rückgabewert der Prozedur
  • Siehe: Befehle der PHP-Schnittstelle

Mit dieser Funktion können Prozeduren, die in der Datenbank erstellt wurden, ausgeführt werden. Die Prozedur muss mit einem CONZEPT 16-Client ab Version 4.2 erstellt worden sein. Im Parameter (aConnection) wird das von c16_connect() bereitgestellte Verbindungsobjekt übergeben. Der Prozedurname wird im Parameter (aProcName) übergeben. Der Name kann sich dabei auch aus <Prozedurname:Funktionsname> zusammensetzen.

info

Von der PHP-Schnittstelle können nur Prozeduren ausgeführt werden, die mit der Option @A+ übersetzt wurden. Alle Befehle, die in diesen Prozeduren verwendet werden können, sind in der Online Hilfe mit dem Symbol Ausführbar von Clients mit Programmierschnittstelle versehen.

Ab dem dritten Parameter können die Übergabewerte an die Prozedur übergeben werden. Folgende PHP-Typen können übergeben werden:

info

Es können keine VAR-Parameter (Call by reference) angegeben werden.

Wird eine Zeichenkette oder ein Array übergeben, darf die Zeichenkette und die Elemente des Arrays nicht größer als 4 KB sein. Wird ein Array übergeben, muss im Funktionskopf der CONZEPT 16-Funktion eine ganzzahlige Variable definiert werden. In dieser Variablen wird der Deskriptor einer Cte-Liste übergeben. Der Inhalt des Arrays befindet sich in den Cte-Items der übergebenen Liste. Bei einem indizierten Array sind die Schlüssel in der Eigenschaft ID, bei einem assoziativen Array in der Eigenschaft Name abgelegt. Der Wert befindet sich in der Eigenschaft Custom.

Als Rückgabewert der CONZEPT 16-Funktion können die gleichen Typen verwendet werden, die auch übergeben werden können. Soll ein Array zurückgegeben werden, muss der Rückgabewert der Funktion mit handle angegeben werden.

Beispiele:

Definition in CONZEPT 16

sub Alphabet
(
aArg1 : alpha;
aArg2 : float;
aArg3 : int;
) : handle;
{
...
}

Aufruf in PHP

$arg1 = 'String';
$arg2 = 3.14159;
$arg3 = array( 1 =>'abc', 2 => 'def');
$arg4 = array( 'Vowels' =>'aeiou', 'Consonants' => 'bcdfghjklmnpqrstvwxyz');

$erg = c16_call($connection,'php:Alphabet',$arg1,$arg2,$arg3);
echo 'proccall ' . $erg . ' / [' . $arg1 . '] [' . $arg2 . ']<br>';
print_r($erg); echo "<br>";

$erg = c16_call($connection,'php:Alphabet',$arg1,$arg2,$arg4);
echo 'proccall ' . $erg . ' / [' . $arg1 . '] [' . $arg2 . ']<br>';
print_r($erg); echo "<br>";

Tritt während der Verarbeitung der Prozedur ein Laufzeitfehler auf, bricht die Prozedur ab. Der Fehler kann mit Hilfe der Funktion c16_error() oder c16_errortext() ermittelt werden. Folgende Fehler können auftreten:

  • C16_OK (0): Kein Fehler aufgetreten.
  • C16ERR_ARGS_CONNECTION (-254): Kein Verbindungsobjekt in aConnection übergeben.
  • C16ERR_RESULT_ARRAY (-256): Initialisierung eines zurückzugebenden Arrays fehlgeschlagen.