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 服务过程在一个两列式结果集中返回关于响应的所有信息。此结果集包含响应状态、标头信息和主体。第一列名为 Attribute,第二列名为 Value。两列的数据类型都是 LONG VARCHAR。

结果集为每个响应标头字段都提供一个数据行,并且分别为 HTTP 状态行(Status 属性)和响应主体(Body 属性)提供了一个数据行。

以下示例代表一个典型响应:

属性
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';

执行以下 SELECT 查询,从 Web 服务获取结果集形式的响应。

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 的结果限定为仅一行。

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

此 SELECT 语句仅从结果集中检索状态信息。它可用于验证调用是否成功。

 另请参见