国产一区二区精品久久_蜜桃狠狠狠狠狠狠狠狠狠_午夜视频精品_激情都市一区二区

當前位置:首頁 > 網(wǎng)站舊欄目 > 學習園地 > 程序開發(fā)教程 > SQL Server數(shù)據(jù)庫和XML標識語言的集成

SQL Server數(shù)據(jù)庫和XML標識語言的集成
2010-01-17 10:57:06  作者:  來源:
XML相比HTML給予了Web開發(fā)人員更大的編程靈活性。這種技術(shù)驅(qū)動開發(fā)機構(gòu)嘗試把XML同自己的產(chǎn)品集成起來。微軟就是采取如此舉措的先驅(qū)者。微軟的幾乎所有產(chǎn)品中都能看到XML的身影。舉個例子:微軟是如何在其SQL Server產(chǎn)品線中集成XML的呢?下面咱們就來看看關鍵的FOR XML子句。 

  以XML的名義獲取信息 

  SQL Server和XML之間的集成首要一點就是根據(jù)SQL數(shù)據(jù)創(chuàng)建XML文件。XML文件的構(gòu)造并不復雜,用簡單的腳本和ADO記錄集就可以輕松產(chǎn)生。這個任務雖然不算麻煩,但開發(fā)人員卻需要針對他們從服務器獲取的結(jié)果集合產(chǎn)生不同的腳本,或者編寫更為復雜的通用腳本。SELECT 語句則由此而配備了新的FOR XML子句。 

  該子句的語法如下所示: 

  [ FOR { XML { RAW   AUTO   EXPLICIT } 

  [ , XMLDATA ] 

  [ , ELEMENTS ] 

  [ , BINARY BASE64 ] } ] 

  FOR XML子句的XML模式由三種參數(shù)值表示:RAW、AUTO或者EXPLICIT。模式?jīng)Q定了結(jié)果XML的形式和組成。下面我們就更深入些地通過以下示例了解以上各個XML選項。 

  RAW示例 

  我們執(zhí)行以下的SQL語句: 

  SET ROWCOUNT 3SELECT Orders.OrderID, Orders.OrderDate, ProductIDFROM Orders, [Order Details]WHERE Orders.OrderID = [Order Details].OrderIDORDER BY Orders.OrderIDFOR XML RAW 

  執(zhí)行后產(chǎn)生的結(jié)果如下: 

  <row OrderID="10248" OrderDate="1996-07-04T00:00:00" ProductID="11"/> 

  <row OrderID="10248" OrderDate="1996-07-04T00:00:00" ProductID="42"/> 

  <row OrderID="10248" OrderDate="1996-07-04T00:00:00" roductID="72"/> 

  AUTO示例 

  我們執(zhí)行以下的SQL語句: 

  ‘結(jié)果限制為3條記錄。SET ROWCOUNT 3SELECT Orders.OrderID, Orders.OrderDate, ProductIDFROM Orders, [Order Details]WHERE Orders.OrderID = [Order Details].OrderIDORDER BY Orders.OrderIDFOR XML AUTO 

  產(chǎn)生的結(jié)果如下所示: 

  <Orders OrderID="10248" OrderDate="1996-07-04T00:00:00"> 

  <Order_x0020_Details ProductID="11"/> 

  <Order_x0020_Details ProductID="42"/> 

  <Order_x0020_Details ProductID="72"/> 

  </Orders> 

  EXPLICIT示例 

  Explicit模式給予查詢編程人員對產(chǎn)生XML的完全控制能力。然而這種控制力度卻要價不菲:你得編寫每一查詢以便SQL語句能包含XML信息。 

  有關的語法很復雜,而且超出了本文的討論范圍。[ , XMLDATA ] [ , ELEMENTS ] [ , BINARY BASE64 ] 是相應的可選參數(shù)。 

  可選元素 

  示例可以讓我們對各種設置的內(nèi)部工作機理有更多的了解,下面我們就進一步研究下FOR XML語句的可選元素XMLDATA。 

  如果你設置該選項,那么XML-Data schema就會包含在結(jié)果集合里。以下是SQL語句: 

  SET ROWCOUNT 3SELECT Orders.OrderID, Orders.OrderDate, ProductIDFROM Orders, [Order Details]WHERE Orders.OrderID = [Order Details].OrderIDORDER BY Orders.OrderIDFOR XML AUTO, XMLDATA 

  以上的SQL語句產(chǎn)生以下結(jié)果: 

  "urn:schemas-microsoft-com:datatypes">order="many">… 

  ELEMENTS 

  ELEMENTS選項指示各數(shù)據(jù)列作為子元素而非屬性返回。假如你采用AUTO模式就可以只采用該選項。 

  BINARY BASE64 

  使用該選項表示你希望采用base64編碼格式表示二進制數(shù)據(jù)。 

  注:本文只是對FOR XML子句的簡單說明,這里要提醒你的是這一部分不過是XML同SQL Server集成需要注意的一點,其他方面的問題還包括IIS的OPENXML 函數(shù)和模版文件等。
安徽新華電腦學校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢