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 » Variable, auf die aus Ergebnismengen zugegriffen wird

 

Ergebnismengenabruf aus einem Webdienst

Webdienstprozeduren vom Typ HTTP geben alle Informationen zu einer Antwort in einer zweispaltigen Ergebnismenge zurück. Diese Ergebnismenge enthält den Antwortstatus, Headerinformationen und den Hauptteil. Die erste Spalte heißt Attribute und die zweite Value. Beide sind vom Datentyp LONG VARCHAR.

Die Ergebnismenge hat eine Zeile für jedes Antwort-Headerfeld sowie auch eine Zeile für die HTTP-Statuszeile (Status-Attribut) und eine Zeile für den Antwort-Hauptteil (Body-Attribut).

Das folgende Beispiel zeigt eine typische Antwort:

Attribut Wert
Status HTTP /1.0 200 OK
Body <!DOCTYPE HTML ... ><HTML> ... </HTML>
Content-Type text/html
Server GWS/2.1
Content-Length 2234
Date Mon, 18 Oct 2004, 16:00:00 GMT

Erstellen Sie die folgende gespeicherte Webdienstprozedur, um sie als Beispiel zu verwenden.

CREATE OR REPLACE PROCEDURE SybaseWebPage() 
URL 'http://www.sybase.com/mobilize'
TYPE 'HTTP';

Führen Sie die folgende SELECT-Abfrage aus, um die Antwort vom Webdienst als Ergebnismenge anzufordern.

SELECT * FROM SybaseWebPage() 
    WITH (Attribute LONG VARCHAR, Value LONG VARCHAR);

Da die Webdienstprozedur die Form der Ergebnismenge nicht beschreibt, ist die WITH-Klausel erforderlich, um eine temporäre Ansicht zu definieren.

Die Ergebnisse einer Abfrage können in einer Tabelle gespeichert werden. Führen Sie die folgende SQL-Anweisung aus, um eine Tabelle für die Werte der Ergebnismenge zu erstellen.

CREATE TABLE StoredResults(
     Attribute LONG VARCHAR,
     Value     LONG VARCHAR
);

Die Ergebnismenge kann folgendermaßen in die Tabelle StoredResults eingefügt werden:

INSERT INTO StoredResults 
    SELECT * FROM SybaseWebPage() 
    WITH (Attribute LONG VARCHAR, Value LONG VARCHAR);

Sie können Klauseln gemäß der üblichen Syntax der SELECT-Anweisung hinzufügen. Wenn Sie z.B. nur eine bestimmte Zeile der Ergebnismenge auswählen möchten, können Sie eine WHERE-Klausel hinzufügen, um die Ergebnisse der SELECT-Anweisung auf eine einzige Zeile zu beschränken.

SELECT * FROM SybaseWebPage() 
    WITH (Attribute LONG VARCHAR, Value LONG VARCHAR) 
    WHERE Attribute = 'Status';

Diese SELECT-Anweisung ruft nur die Statusinformationen aus der Ergebnismenge ab. Sie kann daher verwendet werden um zu verifizieren, ob der Aufruf erfolgreich war.

 Siehe auch