国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > XML > 正文

使用SQLXML 3.0把存儲過程暴露為Web服務(wù)

2024-09-05 20:55:49
字體:
供稿:網(wǎng)友
最新的技術(shù)是web服務(wù)。現(xiàn)在出現(xiàn)在所有市場中的類似簡單對象訪問協(xié)議(soap)、web服務(wù)描述語言(wsdl)、通用描述、發(fā)現(xiàn)和集成(uddi)等術(shù)語的基本元素都是xml和internet。

web服務(wù)用于建立松散連接的應(yīng)用程序并實(shí)現(xiàn)互操作性。松散連接的應(yīng)用程序使你能重新配置、重新部署或重新定位它的實(shí)現(xiàn)而不影響相關(guān)的應(yīng)用程序。互操作性涉及到建立能夠在允許web服務(wù)的任何平臺上使用的應(yīng)用程序。通過web服務(wù)暴露sql server給予應(yīng)用程序一個松散的連接接口,使你能夠修改數(shù)據(jù)庫的結(jié)構(gòu)和位置而不影響應(yīng)用程序。另外,web服務(wù)使sql server能與更多的編程環(huán)境和平臺交互操作。

為了達(dá)到互操作性,開發(fā)者需要在一套開放的工業(yè)標(biāo)準(zhǔn)和協(xié)議上建立web服務(wù)。xml是這些標(biāo)準(zhǔn)中多數(shù)的基礎(chǔ),提供了不依賴平臺的描述和數(shù)據(jù)表現(xiàn)。建立在xml上的soap提供了基于標(biāo)準(zhǔn)的向應(yīng)用程序發(fā)送數(shù)據(jù)和從應(yīng)用程序接收數(shù)據(jù)的途徑,代表性的是使用http。wsdl描述了位置、方法、參數(shù)和web服務(wù)使用的數(shù)據(jù)類型。uddi為注冊web服務(wù)或查找需要的其它web服務(wù)的目錄提供了一個接口。通過把這些標(biāo)準(zhǔn)技術(shù)和t-sql編程組合在一起,你能把sql server存儲過程實(shí)現(xiàn)為web服務(wù)。

sql server 2000 web release 3(sqlxml 3.0)的焦點(diǎn)是web服務(wù)(你能夠通過鏈接http://microsoft.com/sql/default.asp下載sqlxml 3.0)。sqlxml 3.0使你能夠從數(shù)據(jù)庫中選擇存儲過程并從虛擬目錄中選擇xml模版,把它們暴露為web服務(wù)的方法。因?yàn)槟隳軌蛲ㄟ^web服務(wù)和傳統(tǒng)方法(例如t-sql exec語句、ole db、ado和odbc)調(diào)用存儲過程,你可以最大化地重復(fù)使用這些組件。簡單地說,sqlxml 3.0使你能把數(shù)據(jù)庫編程中的專門技術(shù)擴(kuò)展到web服務(wù)中而不需要學(xué)習(xí)新的語言或工具。下面讓我們看看怎樣把存儲過程轉(zhuǎn)變?yōu)閣eb服務(wù)。

配置虛擬目錄。把存儲過程暴露為web服務(wù)的第一步是從安裝sqlxml 3.0產(chǎn)生的configure iis support(配置iis支持)菜單項(xiàng)中選擇microsoft iis virtual directory manager(微軟iis虛擬目錄管理器)。要建立虛擬目錄,從左邊的樹視圖中選擇web服務(wù)器,接著展開該視圖并點(diǎn)擊默認(rèn)的web站點(diǎn)。右擊右邊面板中的任意區(qū)域,選擇context-》new-》virtual directory來顯示一個new virtual directory properties(新虛擬目錄屬性)對話框。在“安全和數(shù)據(jù)源”頁面上,輸入能夠訪問northwind示例數(shù)據(jù)庫的sql server登陸許可。注意你在“通用”頁面上選擇的目錄的許可必須給你在“安全和數(shù)據(jù)源” 頁面上為iis配置的默認(rèn)用戶授權(quán)(請查看iis文檔尋找配置的詳細(xì)信息)。為了避免許可的問題,為你的虛擬目錄選擇inetpub/wwwroot的一個子目錄,iis默認(rèn)用戶自動擁有訪問inetpub/wwwroot下面數(shù)據(jù)的權(quán)限。下一步,在“設(shè)置”頁面上,選擇allow post選項(xiàng),這樣虛擬目錄能夠接受http post請求。點(diǎn)擊“應(yīng)用”。

配置虛擬名稱。在配置虛擬目錄后,點(diǎn)擊new virtual directory properties(新虛擬目錄屬性)對話框上的“虛擬名稱”頁面。從虛擬名稱列表中選擇新虛擬名稱,為該虛擬名稱選擇一個名字,接著把它的類型設(shè)置為soap。列表1顯示了把soap字符串作為虛擬名稱的vbscript代碼。給虛擬名稱輸入一個路徑。該路徑包含了當(dāng)你把修改保存到根目錄時從iis虛擬目錄管理器中輸出的wsdl文件。我通常選擇('.'),它選擇相同的目錄作為虛擬目錄。你可以接收對話框中剩余字段的默認(rèn)值。點(diǎn)擊“保存”。當(dāng)你保存虛擬名稱時,sqlxml 3.0給你指定的虛擬名稱目錄寫入兩個文件,擴(kuò)展名為.wsdl。其它的文件擴(kuò)展名為.ssc,包含iis虛擬目錄管理器使用的存儲過程的xml描述。現(xiàn)在你選擇希望暴露作為web服務(wù)方法的存儲過程。在本文的例子中,我使用列表2中所示的ordersforcustomer存儲過程。這個存儲過程返回指定客戶id(作為參數(shù)傳遞進(jìn)的)的訂單集合。進(jìn)行下一步之前,你必須使用查詢分析器(query analyzer)把這個存儲過程安裝在northwind示例數(shù)據(jù)庫中。

列表1:調(diào)用一個存儲過程的vbscript代碼
sub main()
dim xmlhttp
set xmlhttp = createobject("msxml2.xmlhttp.4.0")
dim request
request = "<?xml version='1.0' encoding='utf-8'
  standalone='no'?>" & _
"<soap-env:envelope xmlns:
  soap-env='http://schemas.xmlsoap.org/soap/envelope/'>" & _
" <soap-env:body>" & _
" <ordersforcustomer xmlns=
    'http://localhost/june2002/soap'>" & _
" <cid>bottm</cid>" & _
" </ordersforcustomer>" & _
" </soap-env:body>" & _
"</soap-env:envelope>"
xmlhttp.open "post", "http://localhost/june2002/soap", false
xmlhttp.send (request)
msgbox (xmlhttp.responsexml.xml)
end sub



列表2:建立ordersforcustomer存儲過程的代碼
create procedure ordersforcustomer @cid nvarchar(50)
as
select * from customers, orders
where customers.customerid = @cid
and customers.customerid = orders.customerid
go



建立web服務(wù)。在“新虛擬目錄屬性”對話框的“虛擬名稱”頁面上選擇剛剛建立的虛擬名稱,接著點(diǎn)擊“配置”(configure)。這樣就顯示了soap虛擬名稱配置對話框。在這個對話框中,選擇你希望暴露作為web服務(wù)方法的存儲過程。為了選擇一個存儲過程,點(diǎn)擊("..."),它建立你配置虛擬目錄訪問的一個數(shù)據(jù)庫中可用的存儲過程列表。不要選擇包含for xml子句查詢的存儲過程。作為代替,你必須選擇返回標(biāo)準(zhǔn)結(jié)果集合的存儲過程。sqlxml 3.0期望存儲過程返回輸出參數(shù)或標(biāo)準(zhǔn)結(jié)果的結(jié)果集。接著該結(jié)果在中間層中被建立為xml。選擇返回標(biāo)準(zhǔn)結(jié)果集的存儲過程使所有可以用于web服務(wù)或傳統(tǒng)編程方法(例如t-sql)的存儲過程的靈活性最大化了。當(dāng)你在中間層中建立xml查詢結(jié)果,要小心避免sqlxml 3.0的限制(你可以查看sqlxml 3.0在線文檔查看這些限制的詳細(xì)信息)。你選擇ordersforcustomer存儲過程后,點(diǎn)擊“確定”(ok),接著點(diǎn)擊soap虛擬名稱配置對話框的“保存”(save)按鈕。這樣你就已經(jīng)建立了第一個web服務(wù)了。你可以使用任何文本編輯器檢查為虛擬名稱選擇的目錄中的wsdl。該wsdl文件包含余你選擇的web服務(wù)相對應(yīng)的方法定義。

為了測試新建立的web服務(wù),使用列表1中顯示的vbscript代碼。該代碼建立一個調(diào)用該web服務(wù)的soap消息,接著使用xmlhttp對象把該soap請求發(fā)送給web服務(wù)。soap結(jié)果顯示在一個消息框中。這個客戶端簡單演示了soap小心在vbscript和sqlxml 3.0之間的交換。但是,它也顯示了現(xiàn)在存儲過程調(diào)用可以通過在http上使用soap跨平臺交互操作,它們通過wsdl和scc文件中的描述提供了到存儲過程的松散連接。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阆中市| 闵行区| 余姚市| 旅游| 大姚县| 揭东县| 崇礼县| 安徽省| 江永县| 呈贡县| 临湘市| 呈贡县| 泉州市| 会昌县| 菏泽市| 余干县| 农安县| 乌鲁木齐县| 荥经县| 商水县| 鄱阳县| 龙门县| 安福县| 鹤山市| 收藏| 玉环县| 邛崃市| 石林| 塔城市| 扶余县| 苍南县| 健康| 曲靖市| 舟山市| 全南县| 仁布县| 扶沟县| 和平县| 海南省| 两当县| 额尔古纳市|