站内搜索
广告
通过HTTP访问SQL Server 2000
作者:    来源:    点击:    日期:2007-7-17 2:28:35   


   
  一、建立访问SQL Server 2000的虚拟目录
  在通过HTTP访问SQL Server 2000数据库之前,你必须设置一个适当的虚拟目录。利
用SQL Server工具集中IIS虚拟目录管理器 (在SQL Server Tools程序组中点击Configure
SQL XML Support启动该工具)在运行IIS的机器上定义并注册一个新的虚拟目录。 该工具
  IIS 服务器的名字与虚拟目录必须作为URL的一部分。虚拟目录的信息(包括登录名
、口令和访问权限)用于建立与指定数据库的连接并执行查询。 URL可被定义为:
  
直接访问数据库对象,例如表。
执行模板文件。     
执行XPath查询。
  建立XML虚拟目录示例
  该示例演示建立一个访问SQL Server 2000的IIS虚拟目录的全过程:
  1、在Microsoft SQL Server程序组点击Configure SQL XML Support in IIS。
  2、展开一个服务器,然后点击一个WEB站点。
  3、在选择的WEB站点上单击右键,将鼠标移至“新建(N)”,点击“Virtual
  4、在New Virtual Directory Properties的General页输入虚拟目录名。在此例中,
输入XML及物理路径  (例如C:InterpubWwwrootxml,假设你已在C:InterpubWwwroot
目录中建立xml子目录)。你也可使用Browse按钮选择一个目录。
  5、在Security页,选择SQL Server并输入合法的SQL Server登录信息。
  6、在Data Source页,在SQL Server框中,输入服务器名,例如“(local)”,当
服务器上存在多个SQL Server实例时,还需指定实例名。在Database框,输入默认数据库名,
  7、在Settings页,选择Allow URL queries,Allow template queries,Allow
  8、在Virtual Names页,点击New为template(模板)建立虚拟目录。
   在Virtual Name Configuration对话框的Virtual name框中输入template(或其
他名字)。在Type列表 中,选择template。输入路径(例如:C:Ine
tpubWwwrootxml emplate,假设已建立该目录。)点击Save保存虚拟目录名。
  9、其他类型如object、schema的虚拟目录建立同上。
  10、点击O 4嫔柚谩?
  如此,建立了一个xml虚拟目录。为测试该虚拟目录,浏览器地址栏输入
  http://$#@60;IISServer$#@62;/xml?sql=SELECT*FROM+Sysobjects+WHERE+xtype=
   "u"+FOR+XML+AUTO&root=root并回车。
  注意:
  为防止不希望的访问,建议为该目录建立一个专门的SQL Server登录帐号,并取消该
帐号所有不必要的权限,尤其是DELETE、DROP、CREATE PROC权限, 最好禁止在该虚拟目录直
接执行SQL语句。永远不要将SA帐号作为该虚拟目录的登录帐号。
  二、利用HTTP执行SQL语句
  Microsoft SQL Server 2000可通过在URL中执行查询直接访问(假如注册虚拟目录时
选择了允许URL查询)。客户端可通过HTTP的GET和POST方法提交请求。
  示例
  在下述例子中,xml是用于访问test数据库的虚拟目录。
  在查询示例中,如果查询返回多个元素,根元素可通过以下方法之添加:
 
在查询前添加SELECT "$#@60;ROOT$#@62;",并在其后添加SELECT
传递一个root关键字作为查询的参数,其值为ROOT(或其他任何值)
  1、定义一个简单查询
  下例返回数据库test中所有用户定义表的名字及建立日期。
  http://IISserver/xml?sql=select+name,
   crdate+from+sysobjects+where+xtype= "u"+for+xml+auto&root=ROOT
  2、定义一个涉及多个表的查询
  下例中查询返回数据库中所有用户定义表的列的数据类型定义。
  http://IISServer/xml?sql= select+s.name+as+表名,s.xtype+as+类别,
+c.name+as+列名,+t.name+as+数据类型,+c.length+as+长度
+from+sysobjects+s,systypes+t,syscolumns+c+where+s.xtype=
"u"+and+c.id=object_id(s.name)+and+c.xtype=
t.xtype+order+by+1,2+for+xml+auto&root=ROOT
  3、在查询中定义特殊字符
  对于URL有特殊意义的字符,将其替换为“%数字”的形式,如SQL语句中的“LIKE
  4、定义contenttype关键字

首页 上一页 [1] [2] [3] [4]  下一页 尾页 
通过HTTP访问SQL Server 2000 评论