通过HTTP访问SQL Server 2000数据库
添加时间:2014-10-7 21:19:34
添加:
思海网络
Microsoft SQL Server 2000的新特性之一就是支持XML,所以用户可以通过HTTP方式直接访问具备XML功能的SQL Server2000数据库。下面介绍实现方法。
系统环境:Windows2000 Server(包含IIS)+ MS SQL Server2000
数据库:SQL Server2000附带的经典数据库样本:NorthWind
一、配置IIS和SQL Server virtual domains;
1.新建文件目录
打开Windows资源管理器,在Inetpub\wwwroot下新建目录northwind:
C:\Inetpub\wwwroot\northwind
在northwind目录下再新建2个子目录:template和schema:
C:\Inetpub\wwwroot\nwind\template,用于放置XML模版;
C:\Inetpub\Wwwroot\nwind\schema,用于放置schema文件。
2.映射IIS的虚拟目录
在SQL程序组中选择“Configure SQL XML Support in IIS”,在默认站点下选择“新建”->“虚拟路径”;然后进行五步标准配置。
(1)在“General”页中,输入虚拟路径名称“northwind”并映射至实际硬盘路径。
(2)在“Security”页中,选择相应的登陆帐号和口令。本例中使用系统帐号sa。
(3)在“Data Source”页中,选择SQL Server名称或IP地址,并选择数据库。
(4)在“Settings”页中,分别选中“允许URL查询”、“允许模版查询”、“允许XPath”和“允许Post”。
(5)在“Virtual Names”页中,分别定义Template、Schema和Dbobject,并指定实际硬盘路径,结果见图。
然后,确定并关闭窗口。
二、用URL方式执行查询和存储过程;
至此,我们已经设置好SQL和IIS,下面开始精彩的访问历程。先在IE浏览器中键入以下地址:
http://172.24.2.98/northwind?sql=select+*+from+customers+for+xml+auto&root=root
得到结果如图所示。
其中,
“northwind”为虚拟路径名;
“select+*+from+customers”为SQL查询语句“Select * from customers”
“for XML”语句表示输出的数据格式为XML文档,而非标准数据行。
“root”参数表示为顶层元素。
RAW、AUTO和EXPLICIT三种XML模式分别为:
RAW在每条记录前加一个简单的标识,如“<rowCustomerID="ALFKI"…”
AUTO则会在每条记录前加入数据表的名称,如“<CustomersCustomerID="ALFKI"”
EXPLICIT则可用于定义XML的树形结构。
初试成功后,我们再尝试使用URL地址执行存储过程(Stored Procedure)。先在SQL Query Analyzer中新建一个名为CategoryInfo的存储过程;代码如下:
CREATE PROCEDURE CategoryInfo
AS
SELECT CategoryName, Deion FROM Categories
FOR XML AUTO
通过地址
http://172.24.2.98/northwind?sql=execute+categoryinfo&root=root
即可执行存储过程。
三、访问XML模版文件
此外,网站开发人员还可以定义XML的模版,定义查询条件和结果输出格式:
如,在wwwroot\northwind\template目录下生成一个XML文档first.xml,其中包含一个查询语句,代码如下:
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
<sql:query>
SELECT *
FROM Customers AS Customer
FOR XML auto
</sql:query>
</root>
通过地址http://172.24.2.98/northwind/template/first.xml访问,得到结果。
结合Extensible Stylesheet Language (XSL)可以格式化查询结果,使报表更加美观。
系统环境:Windows2000 Server(包含IIS)+ MS SQL Server2000
数据库:SQL Server2000附带的经典数据库样本:NorthWind
一、配置IIS和SQL Server virtual domains;
1.新建文件目录
打开Windows资源管理器,在Inetpub\wwwroot下新建目录northwind:
C:\Inetpub\wwwroot\northwind
在northwind目录下再新建2个子目录:template和schema:
C:\Inetpub\wwwroot\nwind\template,用于放置XML模版;
C:\Inetpub\Wwwroot\nwind\schema,用于放置schema文件。
2.映射IIS的虚拟目录
在SQL程序组中选择“Configure SQL XML Support in IIS”,在默认站点下选择“新建”->“虚拟路径”;然后进行五步标准配置。
(1)在“General”页中,输入虚拟路径名称“northwind”并映射至实际硬盘路径。
(2)在“Security”页中,选择相应的登陆帐号和口令。本例中使用系统帐号sa。
(3)在“Data Source”页中,选择SQL Server名称或IP地址,并选择数据库。
(4)在“Settings”页中,分别选中“允许URL查询”、“允许模版查询”、“允许XPath”和“允许Post”。
(5)在“Virtual Names”页中,分别定义Template、Schema和Dbobject,并指定实际硬盘路径,结果见图。
然后,确定并关闭窗口。
二、用URL方式执行查询和存储过程;
至此,我们已经设置好SQL和IIS,下面开始精彩的访问历程。先在IE浏览器中键入以下地址:
http://172.24.2.98/northwind?sql=select+*+from+customers+for+xml+auto&root=root
得到结果如图所示。
其中,
“northwind”为虚拟路径名;
“select+*+from+customers”为SQL查询语句“Select * from customers”
“for XML”语句表示输出的数据格式为XML文档,而非标准数据行。
“root”参数表示为顶层元素。
RAW、AUTO和EXPLICIT三种XML模式分别为:
RAW在每条记录前加一个简单的标识,如“<rowCustomerID="ALFKI"…”
AUTO则会在每条记录前加入数据表的名称,如“<CustomersCustomerID="ALFKI"”
EXPLICIT则可用于定义XML的树形结构。
初试成功后,我们再尝试使用URL地址执行存储过程(Stored Procedure)。先在SQL Query Analyzer中新建一个名为CategoryInfo的存储过程;代码如下:
CREATE PROCEDURE CategoryInfo
AS
SELECT CategoryName, Deion FROM Categories
FOR XML AUTO
通过地址
http://172.24.2.98/northwind?sql=execute+categoryinfo&root=root
即可执行存储过程。
三、访问XML模版文件
此外,网站开发人员还可以定义XML的模版,定义查询条件和结果输出格式:
如,在wwwroot\northwind\template目录下生成一个XML文档first.xml,其中包含一个查询语句,代码如下:
<root xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
<sql:query>
SELECT *
FROM Customers AS Customer
FOR XML auto
</sql:query>
</root>
通过地址http://172.24.2.98/northwind/template/first.xml访问,得到结果。
结合Extensible Stylesheet Language (XSL)可以格式化查询结果,使报表更加美观。
通过以上介绍,你也许已经对SQL2000和XML有了初步的了解。仔细阅读SQL的帮助文件和MSDN.COM会对你深入掌握SQL2000有着更大的帮助。
关键字:SQL Server、数据库、虚拟目录
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解