本主题介绍了如何使用 SQL Anywhere 作为 Web 客户端应用程序来连接 SQL Anywhere HTTP 服务器和访问通用 HTTP Web 服务。它不会全面介绍 SQL Anywhere 的 Web 客户端功能。虽然许多 SQL Anywhere Web 客户端功能都可用,但超出了本主题的范畴。
执行以下任务:
创建并启动 SQL Anywhere Web 客户端。
创建连接 HTTP 服务器上的 Web 服务的过程。
在 HTTP 服务器发送的结果集上执行操作。
您可以开发连接任何类型在线 Web 服务器的 SQL Anywhere Web 客户端应用程序,但本指南假定您在 8082 端口上启用了一个本地 SQL Anywhere HTTP 服务器,并打算连接由以下 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 服务器的详细信息,请参见将 SQL Anywhere 用作 HTTP Web 服务器的快速入门。
如果尚未创建 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 从 POST 请求中为 i、f 和 s 抽取参数值,并将它们作为参数传递至 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讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |