このトピックでは、SQL Anywhere を Web クライアントアプリケーションとして使用して SQL Anywhere HTTP サーバーに接続し、一般的な HTTP Web サービスにアクセスする方法について説明します。SQL Anywhere Web クライアントの機能全般については説明しません。このトピックで説明するもの以外にも、数多くの SQL Anywhere Web クライアントの機能を使用できます。
次のタスクが実行されます。
SQL Anywhere Web クライアントを作成し、起動します。
HTTP サーバー上で Web サービスに接続するプロシージャーを作成します。
HTTP サーバーによって送信された結果セットに対する操作を実行します。
あらゆるタイプのオンライン Web サーバーに接続する SQL Anywhere Web クライアントアプリケーションを開発できますが、このマニュアルでは、ローカル SQL Anywhere HTTP サーバーをポート 8082 で起動し、次の SQL 文を使用して作成された SampleHTMLService という Web サービスに接続することを前提としています。
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; |
HTTP サーバーの設定の詳細については、HTTP Web サーバーとして SQL Anywhere を使用するためのクイックスタートを参照してください。
SQL Anywhere クライアントデータベースが存在しない場合、次のコマンドを実行して作成します。
dbinit client-database-name |
client-database-name をクライアントデータベースの新しい名前に置き換えます。
次のコマンドを実行して、クライアントデータベースを起動します。
dbsrv12 client-database-name.db |
次のコマンドを実行して、Interactive SQL を通じてクライアントデータベースに接続します。
dbisql -c "UID=DBA;PWD=sql;SERVER=client-database-name" |
次の SQL 文を使用して、SampleHTMLService Web サービスに接続する新しいクライアントプロシージャーを作成します。
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'; |
次の SQL 文を実行して、クライアントプロシージャーを呼び出し、Web サーバーに HTTP 要求を送信します。
CALL client_post(3.14, 9, 's varchar', 'x varchar'); |
client_post によって作成される HTTP POST 要求は次のようになります。
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 |
Web サーバー上で実行される Web サービス SampleHTMLService によって i、f、s の各パラメーター値が POST 要求から抽出され、パラメーターとして sp_echo プロシージャーに渡されます。パラメーター値 x は無視されます。sp_echo プロシージャーで結果セットが作成されて Web サービスに返されます。正しく対応付けられるように、クライアントと Web サービスの間でパラメーター名を決めておくことが重要です。
Web サービスで応答が作成されてクライアントに送り返されます。Interactive SQL に表示される出力は次のようになります。
Attribute | Value | ||
---|---|---|---|
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 |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |