新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > SQL Server數據庫和XML標識語言的集成

        SQL Server數據庫和XML標識語言的集成

        作者: 時間:2017-06-12 來源:網絡 收藏
        相比給予了人員更大的編程靈活性。這種技術驅動開發機構嘗試把同自己的產品集成起來。微軟就是采取如此舉措的先驅者。微軟的幾乎所有產品中都能看到的身影。舉個例子:微軟是如何在其SQL Server產品線中集成XML的呢?下面咱們就來看看關鍵的FOR XML子句。

          以XML的名義獲取信息

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

          該子句的語法如下所示:

          [ FOR { XML { RAW | AUTO | EXPLICIT }

          [ , XMLDATA ]

          [ , ELEMENTS ]

          [ , BINARY BASE64 ] } ]

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

          RAW示例

          我們執行以下的SQL語句:

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

          執行后產生的結果如下:

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

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

         ?。紃ow OrderID=10248 OrderDate=1996-07-04T00:00:00 roductID=72/>

          AUTO示例

          我們執行以下的SQL語句:

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

          產生的結果如下所示:

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

         ?。糘rder_x0020_Details ProductID=11/>

         ?。糘rder_x0020_Details ProductID=42/>

          <Order_x0020_Details ProductID=72/>

         ?。?Orders>

          EXPLICIT示例

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

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

          可選元素

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

          如果你設置該選項,那么XML-Data schema就會包含在結果集合里。以下是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語句產生以下結果:

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

          ELEMENTS

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

          BINARY BASE64

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

          注:本文只是對FOR XML子句的簡單說明,這里要提醒你的是這一部分不過是XML同SQL Server集成需要注意的一點,其他方面的問題還包括IIS的OPENXML 函數和模版文件等。



        關鍵詞: XML HTML Web開發 SQLServer

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 突泉县| 米脂县| 金乡县| 桐城市| 三门峡市| 吴川市| 铜山县| 宣汉县| 锦州市| 信丰县| 米易县| 晋州市| 岢岚县| 海伦市| 沾化县| 阳西县| 宜丰县| 南昌县| 临清市| 广丰县| 南开区| 邻水| 长兴县| 额尔古纳市| 筠连县| 安丘市| 深州市| 措美县| 邓州市| 班玛县| 五莲县| 海宁市| 棋牌| 万年县| 景洪市| 兰坪| 吉林市| 莱州市| 宜章县| 麻江县| 米泉市|