科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道XML无处不在——DB2 9给予你掌握它的力量

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

IBM最新的数据库,IBM DB2 9,引入了pureXML,一个解决使用XML进行工作的压力的本地XML特性集合。从新的XML数据类型到XQuery语言,DB2 9使得XML开发变得更加容易。

作者:Duane Merrill 来源:论坛整理 2007年12月24日

关键字: DB2

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共8页)

创建一个新的改进过的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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章