Dieses Thema veranschaulicht die Verwendung von SQL Anywhere als Webclientanwendung, über die eine Verbindung zu einem SQL Anywhere-HTTP-Server hergestellt sowie auf einen allgemeinen HTTP-Webdienst zugegriffen werden kann. Sie veranschaulicht nicht den vollen Umfang der Fähigkeiten des SQL Anywhere-Webclients. Es sind viele SQL Anywhere-Webclient-Funktionen verfügbar, die unter diesem Thema nicht alle behandelt werden können.
Folgende Aufgaben werden durchgeführt:
Erstellen und Starten eines SQL Anywhere-Webclients
Erstellen einer Prozedur, die eine Verbindung zu einem Webdienst auf einem HTTP-Server herstellt
Durchführen von Vorgängen auf der vom HTTP-Server gesendeten Ergebnismenge
Sie können SQL Anywhere-Webclientanwendungen entwickeln, die eine Verbindung zu jedem beliebigen Online-Webserver herstellen, aber in dieser Einführung wird davon ausgegangen, dass Sie einen lokalen SQL Anywhere-HTTP-Server auf Port 8082 gestartet haben und eine Verbindung zu einem Webdienst mit dem Namen SampleHTMLService herstellen möchten, der mit den folgenden SQL-Anweisungen erstellt wurde:
CREATE SERVICE SampleHTMLService TYPE 'HTML' USER DBA AUTHORIZATION OFF AS CALL sp_echo(:i, :f, :s); CREATE PROCEDURE sp_echo(i INTEGER, f REAL, s LONG VARCHAR) RESULT(ret_i INTEGER, ret_f REAL, ret_s LONG VARCHAR) BEGIN SELECT i, f, s; END; |
Weitere Hinweise zum Einrichten eines HTTP-Servers finden Sie unter Kurzeinführung zur Verwendung von SQL Anywhere als HTTP-Webserver.
Führen Sie den folgenden Befehl aus, um eine SQL Anywhere-Clientdatenbank zu erstellen, falls noch keine existiert:
dbinit client-database-name |
Ersetzen Sie Clientdatenbank-Name durch einen neuen Namen für Ihre Clientdatenbank.
Führen Sie den folgenden Befehl aus, um die Clientdatenbank zu starten:
dbsrv12 client-database-name.db |
Führen Sie den folgenden Befehl aus, um eine Verbindung zur Clientdatenbank mithilfe von Interactive SQL herzustellen:
dbisql -c "UID=DBA;PWD=sql;SERVER=client-database-name" |
Erstellen Sie eine neue Clientprozedur, die eine Verbindung zum Webdienst SampleHTMLService mithilfe der folgenden SQL-Anweisung herstellen:
CREATE PROCEDURE client_post(f REAL, i INTEGER, s VARCHAR(16), x VARCHAR(16)) URL 'http://localhost:8082/SampleHTMLService' TYPE 'HTTP:POST' HEADER 'User-Agent:SATest'; |
Führen Sie die folgende SQL-Anweisung aus, um die Clientprozedur aufzurufen und eine HTTP-Anforderung an den Webserver zu senden:
CALL client_post(3.14, 9, 's varchar', 'x varchar'); |
Die von client_post erstellte HTTP POST-Anforderung sieht in etwa wie folgt aus.
POST /SampleHTMLService HTTP/1.0 ASA-Id: ea1746b01cd0472eb4f0729948db60a2 User-Agent: SATest Accept-Charset: windows-1252, UTF-8, * Date: Wed, 9 Jun 2010 21:55:01 GMT Host: localhost:8082 Connection: close Content-Type: application/x-www-form-urlencoded; charset=windows-1252 Content-Length: 58 &f=3.1400001049041748&i=9&s=s%20varchar&x=x%20varchar |
Der Webdienst SampleHTMLService auf dem Webserver extrahiert die Parameterwerte für i, f und s aus der POST-Anforderung und übergibt sie als Parameter an die Prozedur sp_echo. Parameterwert x wird ignoriert. Die Prozedur sp_echo erstellt eine Ergebnismenge, die an den Webdienst zurückgegeben wird. Dabei ist anzumerken, dass eine Vereinbarung der Parameternamen zwischen dem Client und dem Webserver für die richtige Zuordnung wichtig ist.
Der Webdienst erstellt die Antwort, die an den Client zurückgesendet wird. Die in Interactive SQL angezeigte Ausgabe sollte ähnlich wie die folgende Ausgabe sein:
Attribut | Wert | ||
---|---|---|---|
Status | HTTP/1.1 200 OK | ||
Body |
|
||
Date | Wed, 09 Jun 2010 21:55:01 GMT | ||
Connection | close | ||
Expires | Wed, 09 Jun 2010 21:55:01 GMT | ||
Content-Type | text/html; charset=windows-1252 | ||
Server | SQLAnywhere/12.0.1 |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |