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 碼了。
現在,你可以在客戶端任意解釋所得到的數據了。