以下过程介绍了如何新建一个数据库、如何在启用 HTTP 服务器的情况下启动 SQL Anywhere 数据库,以及如何使用任何常用 Web 浏览器访问此数据库。
在命令提示符处,运行以下命令以启动个人 Web 服务器。将 samples-dir 替换为示例数据库的实际位置。-xs http(port=80)
选项将指示数据库服务器监听 HTTP 请求。如果端口 80 上已有 Web 服务器在运行,则将另一个端口号(例如 8080)用于此演示。
dbeng11 -xs http(port=80) samples-dir\demo.db |
HTTP 通信链接的很多属性都由 -xs 选项的参数来控制。请参见-xs 服务器选项。
使用相应的 -xs 选项参数启动数据库服务器,并使用 CREATE SERVICE 语句创建 Web 服务以响应进来的请求。
启动 Interactive SQL。以 DBA 身份连接到 SQL Anywhere 示例数据库。执行以下语句。
CREATE SERVICE HTMLtable TYPE 'HTML' AUTHORIZATION OFF USER DBA AS SELECT * FROM Customers; |
此语句创建一个名为 HTMLtable 的 Web 服务。这个简单的 Web 服务会返回语句 SELECT * FROM Customers 的结果,并将输出自动转换为 HTML 格式。因为关闭了授权,所以从 Web 浏览器访问表无需任何权限。请参见创建 Web 服务和CREATE SERVICE 语句。
启动 Web 浏览器。
浏览至 URL http://localhost:80/demo/HTMLtable。使用启动数据库服务器时指定的端口号。
Web 浏览器将显示数据库服务器返回的 HTML 文档的主体。缺省情况下,会将结果集的格式设置为 HTML 表。
在命令提示符处,运行以下命令以启动个人 Web 服务器。将 samples-dir 替换为示例数据库的实际位置。-xs http(port=80)
选项将指示数据库服务器监听 HTTP 请求。如果端口 80 上已有 Web 服务器在运行,则将另一个端口号(例如 8080)用于此演示。
dbeng11 -xs http(port=80) samples-dir\demo.db |
HTTP 通信链接的很多属性都由 -xs 选项的参数来控制。请参见-xs 服务器选项。
使用相应的 -xs 选项参数启动数据库服务器,并使用 CREATE SERVICE 语句创建 Web 服务以响应进来的请求。
启动 Interactive SQL。以 DBA 身份连接到 SQL Anywhere 示例数据库。执行以下语句:
CREATE SERVICE XMLtable TYPE 'XML' AUTHORIZATION OFF USER DBA AS SELECT * FROM Customers; |
此语句创建一个名为 XMLtable 的 Web 服务。这个简单的 Web 服务会返回语句 SELECT * FROM Customers 的结果,并将输出自动转换为 XML 格式。因为关闭了授权,所以从 Web 浏览器访问表无需任何权限。请参见创建 Web 服务和CREATE SERVICE 语句。
启动 Web 浏览器。
浏览至 URL http://localhost:80/demo/XMLtable。使用启动数据库服务器时指定的端口号。
localhost:80 定义要使用的 Web 主机名和端口号。
demo 定义要使用的数据库名。您使用的是 demo.db。
XMLtable 定义要使用的服务名。
Web 浏览器将显示数据库服务器返回的 XML 文档的主体。由于未包含任何格式设置信息,您将看到原始 XML,包括标记和属性。
也可以从常用编程语言访问 XMLtable 服务。例如,以下 C# 短程序使用 XMLtable Web 服务:
using System.Xml; static void Main(string[] args) { XmlTextReader reader = new XmlTextReader( "http://localhost:80/demo/XMLtable" ); while( reader.Read() ) { switch( reader.NodeType ) { case XmlNodeType.Element: if( reader.Name == "row" ) { Console.Write(reader.GetAttribute("ID")+" "); Console.WriteLine(reader.GetAttribute("Surname")); } break; } } reader.Close(); } |
此外,如以下示例所示,还可从 Python 访问同一 Web 服务:
import xml.sax class DocHandler( xml.sax.ContentHandler ): def startElement( self, name, attrs ): if name == 'row': table_id = attrs.getValue( 'ID' ) table_name = attrs.getValue( 'Surname' ) print '%s %s' % ( table_id, table_name ) parser = xml.sax.make_parser() parser.setContentHandler( DocHandler() ) parser.parse( 'http://localhost:80/demo/XMLtable' ) |
将此代码保存在名为 DocHandler.py 的文件中。要运行该应用程序,请输入类似以下的命令:
python DocHandler.py |
在命令提示符处,运行以下命令以启动个人 Web 服务器。将 samples-dir 替换为示例数据库的实际位置。-xs http(port=80)
选项将指示数据库服务器监听 HTTP 请求。如果端口 80 上已有 Web 服务器在运行,则将另一个端口号(例如 8080)用于此演示。
dbeng11 -xs http(port=80) samples-dir\demo.db |
HTTP 通信链接的很多属性都由 -xs 选项的参数来控制。请参见-xs 服务器选项。
使用相应的 -xs 选项参数启动数据库服务器,并使用 CREATE SERVICE 语句创建 Web 服务以响应进来的请求。
启动 Interactive SQL。以 DBA 身份连接到 SQL Anywhere 示例数据库。执行以下语句:
CREATE SERVICE JSONtable TYPE 'JSON' AUTHORIZATION OFF USER DBA AS SELECT * FROM Customers; |
此语句创建一个名为 JSONtable 的 Web 服务。这个简单的 Web 服务会返回语句 SELECT * FROM Customers 的结果,并将输出自动转换为 JavaScript Object Notation 格式。因为关闭了授权,所以从 Web 浏览器访问表无需任何权限。请参见创建 Web 服务和CREATE SERVICE 语句。
启动 Web 浏览器。
浏览至 URL http://localhost:80/demo/JSONtable。使用启动数据库服务器时指定的端口号。
localhost:80 定义要使用的 Web 主机名和端口号。
demo 定义要使用的数据库名。您使用的是 demo.db。
JSONtable 定义要使用的服务名。
Web 浏览器将允许您保存数据库服务器返回的 JSON 响应文档。将响应保存到文件中。
如果您使用文本编辑器来查看包含响应文档的文件,您将在结果集中看到以下的数组符号。
[ { "ID": 101, "Surname": "Devlin", "GivenName": "Michaels", "Street": "114 Pioneer Avenue", "City": "Kingston", "State": "NJ", "Country": "USA", "PostalCode": "07070", "Phone": "2015558966", "CompanyName": "The Power Group" }, { "ID": 102, "Surname": "Reiser", "GivenName": "Beth", "Street": "33 Whippany Road", "City": "Rockwood", "State": "NY", "Country": "USA", "PostalCode": "10154", "Phone": "2125558725", "CompanyName": "AMF Corp." }, . . . { "ID": 665, "Surname": "Thompson", "GivenName": "William", "Street": "19 Washington Street", "City": "Bancroft", "State": "NY", "Country": "USA", "PostalCode": "11700", "Phone": "5165552549", "CompanyName": "The Apple Farm" } ] |
示例包含在 samples-dir\SQLAnywhere\HTTP 目录中。
CodeXchange 上提供了其它示例,网址是 http://www.sybase.com/developer/codexchange。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |