程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 使用SQL Server 2000將現有代碼作為Web服務提供

使用SQL Server 2000將現有代碼作為Web服務提供

編輯:關於SqlServer

    一、簡介

Microsoft SQL Server 2000的 XML功能可以簡化將現有代碼作為 Web服務提供的任務。本文集中討論了傳入和傳出 Transact SQL代碼的數據與 XML消息(在 Web服務客戶機和服務器之間使用)之間的轉換。

二、SQL Server 2000中的現有代碼

SQL Server 2000的 XML功能簡化了將現有 Transact SQL代碼作為 Web服務提供的過程。這依賴於 SQL Server 2000中的兩項 XML功能:

1.對 Transact SQL的擴展可將關系型數據轉換為 XML,並且可以對傳入的 XML進行語法分析。利用 ISAPI模板功能,可將傳入的 HTTP請求應用於 Transact SQL代碼,並且可以使用 XSL樣式表對傳出的 XML進行轉換。只要可以使用 FOR XML子句“選定”數據,SQL Server就可以將 XML返回到 XML模板。

2.SQL Server 2000 XML模板

SQL Server 2000 XML模板以透明方式執行以下任務:

對傳入的 HTTP請求進行解碼將參數應用於 Transact SQL查詢執行查詢使用 XSL轉換傳出的 XML讀數據以下示例執行 ISAPI模板中指定的 Transact SQL。如果必要,可將 HTTP請求傳遞到 Transact SQL代碼,並由該代碼進行語法分析。根據模板中指定的 .xsl文件,返回的 XML將被轉換為 SOAP並返回給 Web服務的客戶:

Exec GetOrdersXML
以下是模板中引用的 XSL樣式表,它將存儲過程中的 XML轉換為 SOAP:
version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:m="Some-URI">

最後,以下存儲過程代碼在 Transact SQL SELECT語句中使用 FOR XML EXPLICIT子句來返回 XML。“訂單”和“訂單詳細信息”從單獨的表中選擇,然後合並到 XML層次中:

/*訂單是父 XML元素 */

Select 1 as Tag, NULL as Parent,
Orders.OrderId AS [Order!1!OrderId],
Orders.OrderStatus AS [Order!1!OrderStatus],
Orders.OrderDate AS [Order!1!OrderDate],
Orders.SubTotal AS [Order!1!SubTotal],
Orders.Tax AS [Order!1!Tax],
Orders.ShippingHandling AS [Order!1!ShippingHandling],
Orders.ShipToName AS [Order!1!ShipToName],
Orders.ShipToAddressId AS [Order!1!ShipToAddressId],
NULL AS [OrderDetail!2!OrderDetailId],
NULL AS [OrderDetail!2!OrderId],
NULL AS [OrderDetail!2!ItemId],
NULL AS [OrderDetail!2!UnitPrice],
NULL AS [OrderDetail!2!Quantity]
from Orders
UNION ALL

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved