rio multi-device客户端连接Rest Server

一、创建服务端。RIO 10.3版本

1、向导生成server端。

2、打开data explore窗口,选中mysql中的test数据库,选中表如cp_member,拖入servermethodsunit窗体。

 

将Cp_memberTable的属性设置如下:

  Cp_memberTable.Name := 'Cp_memberTable';
  Cp_memberTable.Connection := MysqlConnection;
  Cp_memberTable.SchemaAdapter := FDSchemaAdapter1;

  Cp_memberTable.SQL.Clear;
  Cp_memberTable.SQL.Add('SELECT * FROM test.cp_member');

3、按图所示,放置fdquery、fdschemaadapter、fdstanstoragebinlink、fdstanstoragejsonlink组件。

fdquery1的属性如下设置“

  FDQuery1.Connection := MysqlConnection;

  FDQuery1.SQL.Clear;
  FDQuery1.SQL.Add('SELECT');
  FDQuery1.SQL.Add('cp_member.mer_id,');
  FDQuery1.SQL.Add('cp_member.mer_username,');
  FDQuery1.SQL.Add('cp_member.mer_phone,');
  FDQuery1.SQL.Add('cp_member.mer_password');
  FDQuery1.SQL.Add('FROM');
  FDQuery1.SQL.Add('cp_member');

4、在servermethodsunit的代码中加入。

  public
    { Public declarations }
    function EchoString(Value: string): string;
    function ReverseString(Value: string): string;
    function GetTaipeiHotels: TStream;
  end;
{$METHODINFO OFF}

implementation


{$R *.dfm}

uses
  System.StrUtils;

function TServerMethods1.GetTaipeiHotels: TStream;
begin
  Result := TMemoryStream.Create;
  try
    with FDQuery1 do
    begin
      Close;
      open;
      SaveToStream(Result, TFDStorageFormat.sfBinary);
      Result.Position := 0;
    end;
  except
    raise;
  end;
end;

5、编译并运行。

二、编写客户端。

右击projectgroup

注意在uses中要加入ippeerclient单元引用。(否则汇报错误,参看http://blog.sina.com.cn/s/blog_541686150102vsgq.html

2、在headerfooterformwithnavigation窗体中拖入。

2个button、一个fdconnection、fdmemtable、fdstoreproc、fdguixwaitcursor、fdstanstoragebinlink、fdphysdsdriverlink组件

2、设置FDConnection1的属性。(保证第一步骤中的server运行的前提)

  FDConnection1.Params.Clear;
  FDConnection1.Params.Add('Protocol=tcp/ip');
  FDConnection1.Params.Add('Server=127.0.0.1');
  FDConnection1.Params.Add('DriverID=DS');

  FDConnection1.Connected := True;
  FDConnection1.LoginPrompt := False;

也可以如图所示进行设置。

3、设置FDStoredProc1的属性。

  FDStoredProc1.Connection := FDConnection1;
  FDStoredProc1.StoredProcName := 'TServerMethods1.GetTaipeiHotels';
  FDStoredProc1.Name := 'ReturnValue';

并参看params子属性如下。

4、编写查询和显示代码。

查询。

procedure THeaderFooterwithNavigation.Button1Click(Sender: TObject);
var
  lstringstream: TStringStream;
begin

  self.FDStoredProc1.ExecProc;
  lstringstream := TStringStream.Create(FDStoredProc1.Params[0].asBlob);
  try
    if (lstringstream <> nil) then
    begin
      lstringstream.Position := 0;
      self.FDMemTable1.LoadFromStream(lstringstream, TFDStorageFormat.sfBinary);
    end;
  finally
    lstringstream.Free;
  end;
end;

显示。

procedure THeaderFooterwithNavigation.Button2Click(Sender: TObject);
var
  Ivi: TListViewItem;
begin
  Self.ListView1.Items.Clear;
  Self.FDMemTable1.First;
  while (not FDMemTable1.Eof) do
  begin
    Ivi := ListView1.Items.Add;
    Ivi.Text := FDMemTable1.FieldByName('mer_phone').AsString;
    Ivi.Detail := FDMemTable1.FieldByName('mer_password').AsString;
    FDMemTable1.Next;
  end;
end;

结果。

以上根据《Delphi 10.1 Berlin DataSnap 开发手册 高清版 V2017-5-22.PDF》第9章编写。只可惜sample中缺少代码。

代码下载

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值