Webservice 返回数据集 DataSet 及Android显示数据集LiveBindings

本文介绍了一种使用Delphi通过SOAP协议实现服务器与客户端数据交互的方法。服务端使用NewTSoapDataModule创建,并添加了TDataSetProvider等组件来处理数据。客户端包括VCL和FireMonkey平台,展示了如何调用服务端的Getdata方法获取并显示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、服务端

New TSoapDataModule

添加控件 TDataSetProvider,TClientDataSet,TADOQuery,TADOConnection

添加方法

function TsoapTest.Getdata(const sql: UTF8String): Variant;
begin
  dm.ADOQuery1.Close;
  dm.ADOQuery1.sql.Text := 'select top 50 * from mz';
  dm.ADOQuery1.Open;
  dm.ClientDataSet1.Data := dm.DataSetProvider1.Data;
  Result := dm.ClientDataSet1.XMLData;
end;

客户端VCL

procedure TForm25.btnGetDataClick(Sender: TObject);
begin
    HTTPRIO1.URL := 'http://localhost:8080/soap/IsoapTest';
  ClientDataSet1.XMLData := (HTTPRIO1 as IsoapTest).Getdata('');
end;

Android客户端

FireMonkey客户端平台

  • StringGrid显示数据
procedure TForm4.btnGetDataSetClick(Sender: TObject);
var
  i: Integer;
begin
  HTTPRIO1.URL := 'http://localhost:8080/soap/IsoapTest';
  ClientDataSet1.XMLData := (HTTPRIO1 as IsoapTest).Getdata('');

  i := 0;
  StringGrid1.RowCount := ClientDataSet1.RecordCount;
  while not ClientDataSet1.Eof do
  begin
    StringGrid1.Cells[0, i] := ClientDataSet1.FieldByName('代码').AsWideString;
    StringGrid1.Cells[1, i] := ClientDataSet1.FieldByName('民族').AsString;
    StringGrid1.Cells[2, i] := ClientDataSet1.FieldByName('拼音码').AsString;
    i := i + 1;
    ClientDataSet1.Next;
  end;
end;

  • android 用Grid展示数据

  HTTPRIO1.URL := 'http://localhost:8080/soap/IsoapTest';
  ClientDataSet1.XMLData := (HTTPRIO1 as IsoapTest).Getdata('');

运行 LiveBindings Wizard向导 选择Grid>ClientDataSource就关联上了,不用写代码数据就出来了

StringGrid、Grid都可以这样!!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值