<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > .NET的數據傳輸之道

.NET的數據傳輸之道

作者: 時(shí)間:2012-05-02 來(lái)源:網(wǎng)絡(luò ) 收藏

本文向您介紹了如何使用WebServices和SOAP(SimpleObjectAccessProtocol,簡(jiǎn)單對象反問(wèn)協(xié)議)進(jìn)行,并且通過(guò)討論示例代碼對在PocketPC上傳輸數據的方法進(jìn)行了仔細分析。

本文引用地址:http://dyxdggzs.com/article/149158.htm

需要具備

Microsoft®eMbeddedVisualTools

PocketPC上的有效Internet連接

如果需要,您可以下載本文中所討論的示例代碼。為了創(chuàng )建測試示例代碼所需的WebServices,您需要下載SOAPToolkit(SOAPToolkitforMicrosoftVisualStudio6.0)

須知

SOAP規范(當前版本為1.1)仍然是一個(gè)處于提議狀態(tài)的標準并且有可能發(fā)生變化。本文所提供的示例代碼使用了當前處于提議狀態(tài)的SOAP規范,在SOAP規范發(fā)生修改和變化時(shí),本文中所提供的示例代碼可能需要修改。

該示例代碼使用了SDL(ServicesDescriptionLanguage,服務(wù)描述語(yǔ)言)來(lái)定義WebServices,而SDL即將(有望在2001年的上半年)被最新的WSDL規范(WebServicesDescriptionLanguage,Web服務(wù)描述語(yǔ)言)所替代。本文中所提供的示例代碼不能同使用WSDL規范的WebServices配合工作。

支持ADO(MicrosoftActiveXDataObjects)Recordset(我使用的是2.6版本)的XML格式可能會(huì )發(fā)生修改和變化,在XML格式發(fā)生變化時(shí),本文提供的示例代碼也可能需要相應修改。

支持的語(yǔ)言

英語(yǔ)

數據和WebServices

正如我在由我撰寫(xiě)的另一篇循序漸進(jìn)文章“為Microsoft做好準備”中所介紹的一樣,您可以在當前SOAP規范的基礎之上,使用WebServices為PocketPC開(kāi)發(fā)程序。

大多數的商業(yè)應用程序都需要在服務(wù)器和客戶(hù)機應用程序之間傳輸數據。在一個(gè)傳統的MicrosoftWeb解決方案平臺(以前被稱(chēng)作MicrosoftWindowsDNA)中,一般使用ADORecordset(ADO記錄集)對象進(jìn)行。因為它使用了一種特殊類(lèi)型的“編組”(對象傳輸),它無(wú)需持有服務(wù)器上的任何“狀態(tài)”(資源)即可被傳輸到客戶(hù)端上。有鑒于此,很多現有系統中的組件都采用了這種實(shí)現方式,以ADORecordsets形式返回數據。

如果我們又想利用在這些組件上的先前投資,又想獲得應用程序同WebServices集成所帶來(lái)的諸多益處,我們就需要找到一種通過(guò)SOAP傳輸這些ADORecordsets的方法。在ChrisDengler所撰寫(xiě)的“利用SOAP消息返回ADORecordset”這篇出色文章中,您可以為在個(gè)人計算機上使用WebServices找到一種解決方法。

但是,該解決方案不能被照搬到PocketPC上,因為ADOCE(ActiveXDataObjectsforCE)的實(shí)現方式同ADO有所不同。最重要的差別之處在于:ADOCE當前(3.1版)不支持持續性。特別是對于XML(擴展標記語(yǔ)言)格式。另一個(gè)不同之處在于:ADOCE不支持我前面所提到過(guò)的記錄集編組。因此,它不能為動(dòng)態(tài)創(chuàng )建“連接斷開(kāi)”(沒(méi)有到數據源的活動(dòng)連接)狀態(tài)下的記錄集提供支持。

無(wú)處不在的WebServices數據

在當前版本的ADOCE(V3.1)中,我們必須找到另一種處理WebService(SOAP)調用返回數據的方法。在本文中,我將同大家對一些示例代碼進(jìn)行探討,看看如何使用從一個(gè)SOAP響應中返回的數據。該示例假定Recordset(記錄集)按照ChrisDengler文中所介紹的Solution2封裝方式進(jìn)行封裝。因為Chris在他的文章中已經(jīng)對這種解決方案的實(shí)現方式進(jìn)行了詳細描述,在本文中我就不再對所需的服務(wù)器端代碼多加敘述了。

一個(gè)測試客戶(hù)端程序

在我們開(kāi)始討論代碼之前,讓我們首先了解一下使用WebServices傳輸數據對我們有哪些好處。在下面這個(gè)窗體中,我創(chuàng )建了一個(gè)簡(jiǎn)單的測試用客戶(hù)端程序,該程序將兩個(gè)不同的WebServices結合到了一個(gè)MicrosofteMbeddedVisualBasic應用程序之中。:

SOAP客戶(hù)端測試程序示例

窗體頂部的TextBox(文本框)用來(lái)選擇所需的WebService(描述)。這個(gè)URI(UniversalResourceIdentifier)是使用SOAPToolkitWizard創(chuàng )建的SDL(服務(wù)描述語(yǔ)言,ServicesDescriptionLanguage)文件。

我已經(jīng)創(chuàng )建了第一個(gè)WebService,您可以調用這個(gè)WebService(使用頂部的“Get”按鈕),這個(gè)WebService主要用于測試目的。它調用一個(gè)簡(jiǎn)單的WebService,將您提交的名和姓作為參數連接到了一個(gè)包含完整名稱(chēng)的字符串中。

當您輸入一個(gè)已經(jīng)在服務(wù)器上進(jìn)行了定義的DSN(數據源名稱(chēng))以及一個(gè)針對該DSN的SQL(結構化查詢(xún)語(yǔ)言)查詢(xún),然后點(diǎn)擊“Get”按鈕時(shí),它開(kāi)始變得更有意思了。DSN和SQL作為一個(gè)參數傳遞給了WebService,然后以XML格式返回一個(gè)ADORecordset。數據經(jīng)過(guò)分析后,填充在窗體底部的ListView控件中。

在正確對服務(wù)器進(jìn)行了設置的前提下,現在,您可以方便地訪(fǎng)問(wèn)您的企業(yè)數據了。您無(wú)需任何第三方產(chǎn)品--甚至不使用ADOCE--即可輕松做到這一點(diǎn)。對此,我的一位同事說(shuō),“這實(shí)在令人驚訝!”

代碼討論

以下代碼為cmdGetRecordset_Click事件的代碼(當您按下窗體底部的“Get”按鈕時(shí)運行):

DimlavParameters(2)AsVariant

DimlsAsString

DimlitmAsListItem

DimiAsInteger

'Setparameters

lavParameters(1)=txtDSN.Text

lavParameters(2)=txtSQL.Text

'MakeSOAPCall

ls=SOAPCall(txtURI.Text,GetRecordset,lavParameters,chkShowPackets=1)

'ClearandaddListViewheadings

lvwRecordset.ColumnHeaders.Clear

lvwRecordset.ColumnHeaders.Add1,,ArtNo,700

lvwRecordset.ColumnHeaders.Add2,,Description,1450

lvwRecordset.ColumnHeaders.Add3,,Price,850,lvwColumnRight

'ClearandfillListViewfromXML(withRecordsetEmulation)

lvwRecordset.ListItems.Clear

XMLRSOpenls

DoWhileNotXMLRSEOF

Setlitm=lvwRecordset.ListItems.Add(,,XMLRS(ArticleNo))


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 數據傳輸 .NET

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>