使用delphi 開發多層應用(十七)使用RTC web 服務器返回JSON


      RTC 作為delphi 的最專業的web 應用服務器,如果客戶端要使用JSON 的話,那么使用RTC 應該也是一種

非常好的選擇。下面我們做一個使用RTC web 服務器返回數據庫JSON 的例子。

    建立一個新的程序窗體,放置如圖的控件:

其中server 的屬性為

注意,這一塊先不要選多線程,因為在這個簡單的例子里面暫時不涉及到數據庫池,

后面我會做數據庫池的例子。

RtcDataProvider1 的屬性

然后設置好unidac 的數據庫連接屬性,我這里使用Firebird 作為數據庫。

並設置事件以下代碼:

procedure TForm2.Button1Click(Sender: TObject);
begin
   server.Listen();
   Button1.Caption:='已啟動';
   Button1.Enabled:=False;
end;

 

procedure TForm2.RtcDataProvider1CheckRequest(Sender: TRtcConnection);
begin
     with TRtcDataServer(Sender) do
    if UpperCase(Request.FileName)='/GETDATA' then
      Accept;
end;
procedure TForm2.RtcDataProvider1DataReceived(Sender: TRtcConnection);
var
  ds:Trtcdataset;
   r:Trtcvalue;
  ss:string;
  s:TRtcHugeString;


begin
  with TRtcDataServer(Sender) do
    if Request.Complete then
     begin

      ds:=TRtcDataSet.Create;
      r:=Trtcvalue.Create;
      s:=TRtcHugeString.Create;
    try

         cx.SQL.Clear;
         cx.sql.Add('select * from bmb');
         cx.Open;

      DelphiDataSetToRtc(cx,r.NewDataSet);
      r.to_JSON(s);
      ss:=s.Get;
      write(ss);
      cx.Close;
     finally

      ds.Free;
      r.Free;
      s.Free;
     end;
     end;

end;

 

然后編譯運行,注意要手工加入RtcDb 和rtcFastStrings 這兩個單元引用。

現在我們在瀏覽器里面輸入http://127.0.0.1/getdata

就會顯示數據庫輸出的JSON 串

呵呵,可以發現rtc 的json 傳里面已經把漢字直接轉成unicode 碼了。

現在,你可以在客戶端任意解釋所得到的數據了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM