ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用HTTP访问SQL Server(转)

使用HTTP访问SQL Server(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2018-12-25 15:12:07 0 删除 编辑
可以使用 HTTP 访问 Microsoft® SQL Server™ 2000。有关 SQL ISAPI 扩展所支持的 URL 语法的更多信息,请参见
   URL Access。在可以使用 HTTP 指定查询前,必须先用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建一个虚拟根。
   有关更多信息,请参见创建 nwind 虚拟目录。
  
   SQL Server 的 HTTP 访问能力使您得以:
  
   直接在 URL 中指定 SQL 查询,例如:
   http://IISServer/nwind?sql=SELECT+*+FROM+Customers+FOR+XML+AUTO&root=root
  
   指定 FOR XML 子句以 XML 文档而不是标准行集的形式返回结果。根参数可标识单一的顶层元素。
  
   直接在 URL 中指定模板。
   模板是包含一个或多个 SQL 语句的有效的 XML 文档。模板使您得以将数据放在一起以形成有效的 XML 文档,但直接在
   URL 中指定查询时不一定是这样。例如:
  
   http://IISServer/nwind?template=   sql">SELECT+*+FROM+Customers+FOR+XML+AUTO
  
   在 URL 中指定模板文件。
   在 URL 中写入长 SQL 查询会很麻烦。此外,浏览器对在 URL 中可以输入的文本量可能有限制。若要避免这些问题,可以
   编写模板并将其存储在文件中。模板是包含一个或多个 SQL 语句和 XPath 查询的有效的 XML 文档。可以在 URL 中直接
   指定模板文件,例如:
  
   http://IISServer/nwind/TemplateVirtualName/templatefile.xml
  
   在 URL 中,TemplateVirtualName 是使用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建的 template 类型的虚拟
   名称。
  
   模板文件还删除来自用户的数据库查询的详细信息以增强安全性。通过将模板文件存储在注册数据库时所在的虚拟根目录
   (或其子目录)中,删除虚拟根上的 URL 查询处理服务并只允许 SQL Server XML ISAPI 处理文件及返回结果集,从而加
   强了安全性。
  
   指定在带批注的 XML 数据简化 (XDR) 架构(也称为映射架构)上执行的 XPath 查询。
   从概念上讲,对映射架构编写 XPath 查询与使用 CREATE VIEW 语句创建视图并对视图编写 SQL 查询相似,例如:
  
   http://IISServer/nwind/SchemaVirtualName/schemafile.xml/Customer[@CustomerID="ALFKI"]
  
   在这个 URL 中:
  
   SchemaVirtualName 是使用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建的 schema 类型的虚拟名称。
  
  
   Customer[@CustomerID="ALFKI"] 是在该 URL 中指定的 schemafile.xml 上执行的 Xpath 查询。
   直接在 URL 中指定数据库对象。
   可以将数据库对象(如表和视图)指定为 URL 的一部分,并对数据库对象指定 Xpath 查询,例如:
  
   http://IISServer/nwind/dbobjectVirtualName/XpathQuery
  
   在这个 URL 中,dbobjectVirtualName 是使用用于 SQL Server 的 IIS 虚拟目录管理实用工具创建的 dbobject 类型的
   虚拟名称。
  
  
  
   说明 当在 URL 中执行需要资源(如内存)的操作(创建临时表和临时存储过程、声明游标、执行
   sp_xml_preparedocument 等等)时,必须执行适当的相应命令(如 DROP TABLE、DROP PROCEDURE、DEALLOCATE 游标或
   EXECUTE sp_xml_removedocument)以释放资源。
  
   XML 文档和文档片段
   当用 root 参数执行模板或查询时,结果是有单个顶层元素的完整 XML 文档。例如,下列 URL 执行模板:
  
   http://IISServer/VirtualRoot/TemplateVirutalName/MyTemplate.xml
  
   下面是一个示例模板文件 (MyTemplate.xml):
  
  
  
   SELECT *
   FROM Customers
   FOR XML AUTO
  

  

  
   模板中的 标记为结果 XML 文档提供了单个的顶层元素。
  
   可以直接在 URL 中指定查询。在此例中,root 参数指定返回文档中的顶层元素:
  
   http://IISServer/VirtualRoot?sql=SELECT * FROM Customers FOR XML AUTO?root=root
  
   如果在写上述查询时不使用 root 参数,将返回一个 XML 文档片段(即缺少单个顶层元素的 XML 文档)。 该片段没有标
   题信息。例如,下列 URL 将返回文档片段:
  
   http://IISServer/VirtualRoot?sql=SELECT * FROM Customers FOR XML AUTO
  
   当请求一个 XML 文档时,将返回用以标识文档编码类型的字节顺序标记。字节顺序标记是用以标识 XML 文档编码类型的
   标准字节顺序。XML 分析器使用该字节顺序标记确定文档编码类型(如 Unicode)。例如,字节顺序标记"oxff, 0xfe"将
   文档标识为 Unicode。默认情况下,分析器假设 UTF-8 为文档编码类型。
  
   当请求 XML 片段时将不返回字节顺序标记,因为字节顺序标记属于 XML 文档标题,而 XML 片段中没有标题。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124470/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-08-29

  • 博文量
    503
  • 访问量
    248486