Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - Programmierung » HTTP-Webdienste » Zugriff auf Webdienste mithilfe von Webclients » Webclient-Anwendungsentwicklung

 

Für Klauselwerte verwendete Ersetzungsparameter

Deklarierte Parameter für eine gespeicherte Prozedur oder Funktion werden automatisch für Platzhalter in einer Klauseldefinition eingesetzt, und zwar jedes Mal, wenn die gespeicherte Prozedur oder Funktion ausgeführt wird. Ersetzungsparameter ermöglichen die Erstellung allgemeiner Webdienstprozeduren, die Klauseln zur Laufzeit dynamisch konfigurieren. Alle Teilzeichenfolgen, die ein Ausrufzeichen '!' enthalten, gefolgt vom Namen eines der deklarierten Parameter, werden durch den Wert dieses Parameters ersetzt. Auf diese Weise können ein oder mehrere Parameterwerte ersetzt werden, um die Werte einer oder mehrerer Klauseln während der Laufzeit abzuleiten.

Für das Ersetzen von Parametern müssen folgende Regeln eingehalten werden:

  • Alle zum Ersetzen verwendeten Parameter müssen alphanumerisch sein. Unterstriche sind nicht zulässig.

  • Einem Ersetzungsparameter muss unmittelbar ein nicht alphanumerisches Zeichen bzw. ein Abschlusszeichen folgen. Zum Beispiel wird !sizeXL nicht durch den Wert des Parameters "size" ersetzt, weil X ein alphanumerisches Zeichen ist.

  • Ein Ersetzungsparameter ohne entsprechenden Parameternamen wird ignoriert.

  • Ein Ausrufezeichen (!) kann durch Hinzufügen eines weiteren Ausrufezeichen umgangen werden.

Die folgende Prozedur veranschaulicht die Parameterersetzung. URL und HTTP-Header-Definitionen müssen als Parameter übergeben werden.

CREATE PROCEDURE test(uid CHAR(128), pwd CHAR(128), headers LONG VARCHAR)
    URL 'http://!uid:!pwd@localhost/myservice'
    HEADER '!headers';

Sie können dann folgende Anweisung verwenden, um die test-Prozedur aufzurufen und eine HTTP-Anforderung zu initiieren:

CALL test('dba', 'sql', 'NewHeader1:value1\nNewHeader2:value2');

Es können jedes Mal, wenn diese Prozedur aufgerufen wird, unterschiedliche Werte verwendet werden.

 Beispiel für ein Verschlüsselungszertifikat
 Beispiel für keinen passenden Parameternamen