繁体中文
设为首页
加入收藏

推荐

公告

推荐文章
· XML无处不在——DB2 9给...
· DB2 9.5 提供给 .NET开发...
· 基于 pureXML 技术的数据...
· Rational Portfolio Man...
· DB2 9 中基于字符的字符...
· DB2 9和ASP.NET2.0构建下...
· DB2 9和ASP.NET2.0构建下...
· DB2 9 pureXML 性能解析
· 在DB2上建立database Pa...
· 抢先体会Oracle 11g的新特性
热点文章
广告

当前位置:设计首页 >> 程序开发 >> 数据库 >> XML无处不在——DB2 9给予你掌握它的力量

XML无处不在——DB2 9给予你掌握它的力量 (6)

2008-01-05 08:59:42  作者:  来源:互联网  浏览次数:32  文字大小:【】【】【
简介:  前言  XML不是新概念了。感谢诸如Ajax这样的新技术,使得它在过去的一些年里发展迅速。但是奇怪的是,到目前为止,数据库却拥有非常少的本地XML特性。  IBM最新的数据库,IBM DB2 9,引入了pureXML,一 ...
关键字:力量
  创建一个新的改进过的Web服务

  回到HeroData.cs文件。为了方便,将连接字符串从getNoXML()方法中取出,赋予一个类级别的私有变量,如:
private String connString = "…";

  自己手动填加List9中的代码,而非通过插件产生以下代码:

  Listing 9: getWithXML Webmethod

 [WebMethod()]
public virtual XmlDocument getWithXML(int heroID)
{
 DB2Connection conn = new DB2Connection();
 conn.ConnectionString = connString;
 conn.Open();
 DB2Command cmd = conn.CreateCommand();
 XmlDocument heroXml = new XmlDocument();
 String sel = @"select XMLELEMENT

 (NAME ""HERODATA"", XMLELEMENT (NAME ""HeroName"", HERONAME),
XMLELEMENT (NAME ""Notes"", NOTES))
 from NULLID.HEROES_XML where HEROID = " + heroID.ToString() + ";";
 cmd.CommandText = sel;
 XmlReader xr = cmd.ExecuteXmlReader();

 try
 {
  heroXml.Load(xr);
 }
 catch (DB2Exception ex)
 {
  throw ex;
 }
 finally
 {
  conn.Close();
 }
 return heroXml;
}

  在代码声明段,增加如下:

  using System.Xml;

  一些关于该方法的注解:
  1. 就像我提到的,你有一些荒谬的方法来获取数据。你注意到这个特别的技术因为它更加的短。它不包含任何DB2DataAdapter值,而是直接将值独到XmlReader值中。这将更容易的使用XmlDocument.Load()方法来转换为XmlDocument。
  2. 这里,返回类型是XmlDocument而不是XmlDataDocument,结果是一样的,你将在后面看到它们可以被JavaScript通过responseXML访问。
  3. 注意被选择的语句,你将看到新的命令:XMLELEMENT。它和其它的XML相关的SQL命令帮助你从SQL语句中格式化你的结果为XML。这里,你创建了一个HERODATA节点,然后使用“HeroName”和XML栏“Notes”来导出。这样的方式使得你可以混合数据类型,快速放回一个持久的高可访问的结果集。
  编译和测试HeroData.asmx。你触发你的新getWithXML方法时,将会看到“heroID”域,方法参数。如果你能够一次插入5行到HEROES_XML表中,它将自动的生成HeroID值从1到5。结果如图14所示。

db2


[1] [2] [3] [4] [5] [6] [7] [8]


相关文章