柏林版的DataSnap-李維.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
柏林版的DataSnap 在發表RAD Studio柏林版介紹到DataSnap功能時,英巴的文件只說柏林版的DataSnap除了改bug之外,就是開始移除Indy並改用THTTPClient等新的HTTP相關類別, 另外又隱約提到一個類別TDBXJSONStream,它可使用在DataSnap服務方法中. 第1次看到TDBXJSONStream時感覺有點陌生,但從它的名稱可大約猜出它應該是一個使用在dbExpress(DBX?)應用中的相關類別並提供JSON串列流的功能(JSONStream?). 嗯, 我很好奇的在IDE中搜尋TDBXJSONStream,並在Data.DBXCommon程式單元中找到了它, TDBXJSONStream是一個新類別,我並沒有在以前的版本中看到它.查看它的程式碼發現它提供了JSON Reader和Writer, 那麼這代表它提了寫入JSON物件和讀取JSON物件的功能. property Reader: TJSONReader read GetJSONReader; property Writer: TJSONWriter read GetJSONWriter; 此外它又有一個TStream物件特性, OK, 那麼它一定可以在此TStream物件中寫入和讀出JSON物件, 而這些功能也正是它的名稱代表的意義. property BaseStream: TStream read FBaseStream; 瞭解了它的功能之後我們就可以來看看如何使用它. 先建立一個DataSnap Server專案, 在其中定義一個QueryHotel方法, 請注意QueryHotel方法回傳的物件正是TDBXJSONStream: function QueryHotel(const sName : String) : TDBXJSONStream; 此DataSnap Server專案使用FireDAC存取MS SQL Sevrer中的資料: QueryHotel方法展示了如何使用TDBXJSONStream物件, 要寫入JSON物件到TDBXJSONStream, 我們只需要使用它的Writer特性取得它的JSON Writer: function TServerMethods1.QueryHotel(const sName: String): TDBXJSONStream; var ? sSQL : String; ??procedure WritePair(const sProperty, sFieldName : String); 搜尋?begin ??Result.Writer.WritePropertyName(sProperty); ??Result.Writer.WriteValue(qryTheHotel.FieldByName(sFieldName).AsString); ?end; begin ?Result := TDBXJSONStream.Create; ?sSQL := qryTheHotel.SQL.Text; ?sSQL := sSQL + ? + sName + ?? ?qryTheHotel.SQL.Text := sSQL; ?qryTheHotel.Open(); ?try ??Result.Writer.WriteStartArray; ??while (not qryTheHotel.Eof) do ??begin ???try ????Result.Writer.WriteStartObject; ??????? WritePair(‘名稱’, ‘STITLE’); ??????? WritePair(‘地址’, ‘ADDRESS’); ??????? WritePair(‘電話’, ‘MEMO_TEL’); ????? finally ??????? Result.Writer.WriteEndObject; ??????? qryTheHotel.Next; ????? end; ??? end; ? finally ??? Result.Writer.WriteEndArray; ??? Result.Writer.Close; ??? qryTheHotel.Close; ? end; end; 編譯並執行此DataSnap Server之後就可以使用瀏覽器來試著呼叫QueryHotel方法, 下圖顯示成功的呼叫QueryHotel方法並取得由TDBXJSONStream物件回傳的JSON資料: 當然我們也可以使用Windows/OSX/Android/iOS客戶端來呼叫QueryHotel方法. 下

文档评论(0)

kolr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档