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 新窑洞):使用delphi 开发多层应用(十七)使用RTC web 服务器返回JSON
原文:http://www.cnblogs.com/carcode/p/4605921.html