本节介绍如何使用 SQL Anywhere 作为 Web 客户端应用程序来连接 SQL Anywhere HTTP 服务器和访问通用 HTTP Web 服务。它不会全面介绍 SQL Anywhere 的 Web 客户端功能。虽然许多 SQL Anywhere Web 客户端功能都可用,但超出了本主题的范畴。
可以开发连接任何类型在线 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; |
执行以下任务创建 SQL Anywhere Web 客户端应用程序:
如果尚未创建 SQL Anywhere 客户端数据库,运行以下命令来创建:
dbinit -dba DBA,sql client-database-name |
将 client-database-name 替换为新客户端数据库的名称。
运行以下命令启动客户端数据库:
dbsrv16 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/16.0 |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |