自從Delphi2009添加了JSON這個特性之后,相信很多人都對它十分感興趣吧,我抽了個空做一個小小的Demo,演示了JSON傳遞數據的情況。
首先建立一個Server,放入DSServer, DSServerClass, TCPServerTransport各一個,然后把DSServerClass和TCPServerTransport關聯到DSServer。再放入 ADOConnection, ADOQuery, DataSetProvider, ClientDataSet各一個,做好關聯。這些組件將完成生成XML數據的作用。
做好后界面如圖所示:
然后切換到代碼視圖,添加一個ServerClass,注意添加支持反射的預處理。
然后實現這個方法,跟據SQL語句查出數據,然后返回相關的XML。
編寫DSServerClass的OnGetClass事件。
好了,現在可以編譯并執行Server程序。在Server啟動著的情況下,進行Client的開發。
首先設計Client的界面,如下圖所示:
編寫Call按鈕的事件,如下:
編譯并啟動Client,然后點擊Call按鈕,即可看到數據從Server端返回來了。
到此為止,一個簡單的Demo就做好了,但是有一些事情還不簡單,如下:
我把Server放到了公網的服務器上,然后用Client去調用,卻發生了以下的情況,如圖所示,連接超時了
我找了一下,并沒有在DataSnap的組件上找到Timeout屬性,但是它內定的Timeout時間實在是太短了,在公網上Call幾次,成功的幾率大概也就是50%,網絡狀況稍微差一些,就會超時。
這應該是DataSnap組件有所疏漏吧,至少Timeout屬性是必須有的,還需要繼續等待相關的補丁。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
