日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

使用SQL Server 將現(xiàn)有代碼作為Web 服務(wù)提供

瀏覽:212日期:2023-10-28 18:31:39
摘要:本文介紹了如何使用 Microsoft SQL Server 2000 的 XML 功能將現(xiàn)有的存儲過程代碼作為 Web 服務(wù)提供。 目錄簡介 SQL Server 2000 中的現(xiàn)有代碼 總結(jié)簡介Microsoft&reg; SQL Server&#8482; 2000 的 XML 功能可以簡化將現(xiàn)有代碼作為 Web 服務(wù)提供的任務(wù)。本文集中討論了傳入和傳出 Transact SQL 代碼的數(shù)據(jù)與 XML 消息(在 Web 服務(wù)客戶機和服務(wù)器之間使用)之間的轉(zhuǎn)換。評估現(xiàn)有代碼是否適合于作為 Web 服務(wù)提供時,本文討論的數(shù)據(jù)轉(zhuǎn)換問題并不是唯一需要考慮的問題。應(yīng)考慮的其它因素包括狀態(tài)模型、返回的數(shù)據(jù)大小、如何表示已經(jīng)成功、如何返回錯誤信息、安全模型(包括訪問控制、身份驗證和加密)、執(zhí)行模型(同步或異步)、如何分發(fā)代碼,以及事務(wù)模型(COM+ 事務(wù)或聲明事務(wù)),等等。這些問題將在即將發(fā)表的體系結(jié)構(gòu)主題(英文)文章中進行討論。SQL Server 2000 中的現(xiàn)有代碼 SQL Server 2000 的 XML 功能簡化了將現(xiàn)有 Transact SQL 代碼作為 Web 服務(wù)提供的過程。這依賴于 SQL Server 2000 中的兩項 XML 功能:對 Transact SQL 的擴展可將關(guān)系型數(shù)據(jù)轉(zhuǎn)換為 XML,并且可以對傳入的 XML 進行語法分析。 利用 ISAPI 模板功能,可將傳入的 HTTP 請求應(yīng)用于 Transact SQL 代碼,并且可以使用 XSL 樣式表對傳出的 XML 進行轉(zhuǎn)換。只要可以使用 FORXML 子句“選定”數(shù)據(jù),SQL Server 就可以將 XML 返回到 XML 模板。 SQL Server 2000 XML 模板SQL Server 2000 XML 模板以透明方式執(zhí)行以下任務(wù):對傳入的 HTTP 請求進行解碼 將參數(shù)應(yīng)用于 Transact SQL 查詢 執(zhí)行查詢 使用 XSL 轉(zhuǎn)換傳出的 XML 讀數(shù)據(jù)以下示例執(zhí)行 ISAPI 模板中指定的 Transact SQL。如果必要,可將 HTTP 請求傳遞到 Transact SQL 代碼,并由該代碼進行語法分析。根據(jù)模板中指定的 .xsl 文件,返回的 XML 將被轉(zhuǎn)換為 SOAP 并返回給 Web 服務(wù)的客戶:<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql" sql:xsl="BDAdotNetWebService3Example1.xsl"><Orders><sql:query>Exec GetOrdersXML</sql:query></Orders></ROOT>以下是模板中引用的 XSL 樣式表,它將存儲過程中的 XML 轉(zhuǎn)換為 SOAP:<?xml version="1.0"?><xsl:stylesheet 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"><xsl:template match="/"><SOAP-ENV:Envelope><SOAP-ENV:Body><m:BDAdotNetWebService3Example1Response ><xsl:copy-of select="http://Orders"/></m:BDAdotNetWebService3Example1Response></SOAP-ENV:Body></SOAP-ENV:Envelope></xsl:template></xsl:stylesheet>最后,以下存儲過程代碼在 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/* 訂單詳細信息是子 XML 元素 */select 2 as tag, 1 as parent,Orders.OrderId AS [Order!1!OrderId],NULL AS [Order!1!OrderStatus],NULL AS [Order!1!OrderDate],NULL AS [Order!1!SubTotal],NULL AS [Order!1!Tax],NULL AS [Order!1!ShippingHandling],NULL AS [Order!1!ShipToName],NULL AS [Order!1!ShipToAddressId],OrderDetails.OrderDetailId AS [OrderDetail!2!OrderDetailId],OrderDetails.OrderId AS [OrderDetail!2!OrderId],OrderDetails.ItemId AS [OrderDetail!2!ItemId],OrderDetails.UnitPrice AS [OrderDetail!2!UnitPrice],OrderDetails.Quantity AS [OrderDetail!2!Quantity]from Orders, OrderDetailswhere Orders.OrderId = OrderDetails.OrderIdORDER BY [Order!1!OrderId],[OrderDetail!2!OrderDetailId]For XML EXPLICIT寫數(shù)據(jù)以下示例中,通過 HTTP 請求提供表示層次行數(shù)據(jù)的 XML,然后將其傳遞到 ISAPI 模板中指定的 Transact SQL 代碼。在存儲過程中對 XML 進行語法分析,并進行相應(yīng)的寫入操作:Create Procedure InsertOrder @Order NVARCHAR(4000) = NULL,@OrderId int Output-DECLARE @hDoc INTDECLARE @PKId INT BEGIN TRANSACTION/* 將 XML 載入文檔以進行分析 */ EXEC sp_xml_preparedocument @hDoc OUTPUT, @Order/* 插入訂單標頭 */ INSERT Orders(CustomerId,OrderDate,ShipToName,ShipToAddressId,OrderStatus)SELECT * FROM OPENXML(@hDoc, '/NewDataSet/Orders')WITH ( CustomerId int 'CustomerId',OrderDate Datetime 'OrderDate',ShipToName nvarchar(40) 'ShipToName',ShipToAddressId int 'ShipToAddressId',OrderStatus int 'OrderStatus') SELECT @PKId = @@IDENTITY/* 插入訂單詳細信息 */ INSERT OrderDetails (OrderId,ItemId,UnitPrice,Quantity) SELECT @PKId as OrderId, ItemId, UnitPrice, QuantityFROM OPENXML(@hDoc, '/NewDataSet/Details') WITH ( ItemId int 'ItemId',UnitPrice money 'UnitPrice',Quantity int 'Quantity')/* 指定輸出參數(shù)的值 */Select @OrderId = @PKId COMMIT TRANSACTION/* 清除 XML 文檔 */ EXEC sp_xml_removedocument @hDoc 總結(jié)本文以及附帶的示例介紹了有關(guān)數(shù)據(jù)轉(zhuǎn)換的信息。通過數(shù)據(jù)轉(zhuǎn)換,可以使用 SQL Server 2000 的 XML 功能將現(xiàn)有 Transact SQL 代碼作為 Web 服務(wù)提供。本文集中討論了傳入和傳出 Transact SQL 代碼的數(shù)據(jù)與 SOAP 消息(在 Web 服務(wù)客戶機和服務(wù)器之間使用)之間的轉(zhuǎn)換。這些解決方案的性能各異,并且受所傳遞的數(shù)據(jù)大小影響。在本系列后面的文章中,我們將對這些實現(xiàn)方法進行比較。評估現(xiàn)有代碼是否適合作為 Web 服務(wù)時,接口只不過是應(yīng)當考慮的諸多因素之一。應(yīng)考慮的其它因素包括安全性(包括授權(quán)、身份驗證和加密)、事務(wù)模型、狀態(tài)模型、返回錯誤和結(jié)果的方式,以及代碼是同步還是異步執(zhí)行,等等。
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久成人福利| 岛国av免费在线观看| 婷婷亚洲精品| 麻豆视频一区| 亚洲午夜电影| 91综合久久爱com| 国产精品黑丝在线播放| 午夜久久久久| 国产日产一区| 久久精品国内一区二区三区水蜜桃| 亚洲黄色影院| 日韩中文字幕亚洲一区二区va在线 | 国产精品探花在线观看| 精品色999| 欧美日韩精品一本二本三本| 亚洲精品国产精品粉嫩| 久久丁香四色| 午夜久久99| 国产极品嫩模在线观看91精品| 久久精选视频| 国产日韩免费| 夜久久久久久| 欧美成人一二区| 亚洲大片在线| 久久精品av麻豆的观看方式| 久久高清一区| 亚洲不卡av不卡一区二区| 激情91久久| 日本99精品| 黄色精品视频| 婷婷综合激情| 日本国产一区| 鲁鲁在线中文| 蜜桃视频在线观看一区二区| 国产亚洲精品美女久久| 精品午夜久久| 欧美+亚洲+精品+三区| 亚洲欧美日本国产| 日韩欧美看国产| 国产亚洲一卡2卡3卡4卡新区| 日韩中文字幕一区二区三区| 一区在线免费| 久久国产乱子精品免费女| 在线看片国产福利你懂的| 亚洲激情中文在线| 日韩高清在线一区| 日韩av在线免费观看不卡| 国产精品中文字幕亚洲欧美| 亚洲欧美日韩国产| 久久免费大视频| 麻豆精品蜜桃视频网站| 偷拍亚洲精品| 欧美日韩国产免费观看视频| 精品欧美视频| 欧美视频精品全部免费观看| 日韩亚洲在线| 久久激情中文| 欧美激情另类| 免费一级欧美在线观看视频| 日韩欧美中文字幕电影| 红桃视频国产一区| 日本美女一区| 国产aⅴ精品一区二区三区久久| 日韩高清欧美激情| 久久av在线| 免费观看久久av| 日韩欧美二区| 麻豆国产精品| 日韩精品亚洲aⅴ在线影院| 亚洲神马久久| 亚洲一级二级| 亚洲性视频h| 丝袜av一区| 亚洲精品**中文毛片| 美女在线视频一区| 国产精品亚洲成在人线| 日本亚洲不卡| 日韩中文欧美在线| 欧美日韩激情| 欧美福利专区| 欧美粗暴jizz性欧美20| 蜜桃tv一区二区三区| 亚洲精品在线a| 久久精品1区| 成人影视亚洲图片在线| 欧美中文高清| 亚洲欧洲美洲国产香蕉| 欧美日韩在线播放视频| 国产精品毛片久久| 欧美激情久久久久久久久久久| 免费观看日韩电影| 美女精品在线| 亚洲精品中文字幕乱码| 亚洲精品午夜av福利久久蜜桃| 免费av一区二区三区四区| 香蕉精品久久| 亚洲一区二区成人| 亚洲伊人影院| 亚洲欧美不卡| 蜜臀av性久久久久蜜臀aⅴ流畅 | 成人在线免费观看网站| 久久精品国产99国产| 久久精品国产999大香线蕉 | 日韩在线a电影| 亚洲精品欧洲| 91成人精品在线| 国产欧美日韩精品高清二区综合区| 国产欧美一级| 久久99久久久精品欧美| 精品国产成人| 日韩电影二区| 亚洲激情国产| 日本在线观看不卡视频| 国产日本亚洲| 国产成人精品福利| 国产综合婷婷| 在线免费观看亚洲| 日韩激情中文字幕| 国产精品视频一区二区三区四蜜臂| 欧美国产另类| 激情视频网站在线播放色| 亚洲精品在线影院| 午夜影院欧美| 亚欧洲精品视频在线观看| 国产欧美亚洲精品a| 精品视频在线一区二区在线| 日韩毛片在线| 国产麻豆综合| 国产精品伊人| 亚洲成av人片一区二区密柚| 欧美专区在线| 国产精品15p| 99热国内精品| 日本成人中文字幕| 免费看av不卡| 亚洲香蕉久久| 欧美激情视频一区二区三区在线播放| 日韩中文欧美| 色综合视频一区二区三区日韩 | 国产精品a级| 亚洲国产综合在线看不卡| 亚洲91网站| 日韩亚洲一区在线| 日韩中文字幕麻豆| 国产一区二区三区探花| 欧美搞黄网站| 国产精品久久久一区二区| 国产精品原创| 亚洲精品成人一区| 性欧美videohd高精| 亚洲欧美久久精品| 日韩中文字幕高清在线观看| 四虎在线精品| 成人久久一区| 国产午夜久久av| 日本久久成人网| 欧美视频二区| 亚洲欧美日韩高清在线| 久久不见久久见国语| 五月天激情综合网| 你懂的国产精品永久在线| 黑丝一区二区| 麻豆精品少妇| 国产高清亚洲| 国产日产精品_国产精品毛片| 福利片在线一区二区| 午夜国产一区二区| 国产欧美精品久久| 久久精品高清| 最新国产精品视频| 精品久久一区| 美日韩精品视频| 精品视频自拍| 日韩午夜高潮| 免费在线亚洲| 麻豆91精品| 国际精品欧美精品| 一区二区自拍| 美女久久精品| 亚洲专区一区| 国产成人1区| 亚洲综合激情在线| 高清av一区| 日韩午夜视频在线| 成人免费电影网址| 欧美亚洲tv| 欧美福利一区| 久久99高清| 亚洲三级视频| 久久精品主播| 国产精品极品国产中出| 欧美成人基地 | 麻豆理论在线观看| 在线看片日韩| 美女网站视频一区| 日本成人一区二区| 婷婷丁香综合| 国产精品蜜芽在线观看| 日韩国产欧美视频| 午夜日韩福利|