使用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 码了。

现在,你可以在客户端任意解释所得到的数据了。

 

 

你可能感兴趣的:(Delphi)