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 » SQL Anywhere サーバ プログラミング » HTTP Web サービス » Web クライアントを使用した Web サービスへのアクセス » Web クライアントアプリケーションの開発 » 結果セットからの変数へのアクセス

 

Web サービスからの結果セットの取得

タイプ HTTP の Web サービスプロシージャは、応答に関する全情報を 2 つのカラムから成る結果セットで返します。この結果セットには、応答ステータス、ヘッダ情報、および本文が含まれます。最初のカラムには Attribute、2 番目のカラムには Value という名前が付けられています。どちらも LONG VARCHAR データ型です。

結果セットには、応答ヘッダフィールドごとに 1 ロー、HTTP ステータス行 (Status 属性) に対して 1 ロー、応答本文 (Body 属性) に対して 1 ローが含まれます。

次の例は、一般的な応答を示します。

Attribute Value
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

例として使用する次の Web サービスストアドプロシージャを作成します。

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

結果セットとして Web サービスから応答を取得するには、次の SELECT クエリを実行します。

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

Web サービスプロシージャでは結果セットの形式を記述しないので、テンポラリビューを定義するには WITH 句が必要です。

クエリの結果をテーブルに格納できます。テーブルを作成して結果セットの値を格納するには、次の SQL 文を実行します。

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

結果セットは、次のように StoredResults テーブルに挿入します。

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

SELECT 文の通常の構文に従い、句を追加できます。たとえば、結果セットの特定のローのみが必要な場合は、WHERE 句を追加して SELECT の結果を 1 つのローに限定することができます。

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

この SELECT 文は、結果セットからステータス情報のみを取得します。この文は呼び出しが成功したことを確認するために使用できます。

 参照