一般http访问的地址是

http://localhost:8099/datasnap/rest/TServerMethods1/EchoString/abc

一、用FDConnection1连接Datasnap服务器

FireDAC  连接Datasnap服务端。这个是tcp协议连接通讯,长连接。服务端不是没个方法都建立实例释放实例,而是连接的时候建立,中间调用多少个方法都不释放实例,连接断开才释放。

不是。net的web api或者Datasnap 的 webmodule,纯粹是tcp。

DriverID=DS
Protocol=tcp/ip
Server=127.0.0.1
Port=211
User_Name=dsusr
Password=123

http://docwiki.embarcadero.com/RADStudio/Berlin/en/Connect_to_DataSnap_Server_(FireDAC)

 fdstoreproc 执行返回数据
FDStoredProc1.Close;
FDStoredProc1.Unprepare;
FDStoredProc1.StoredProcName := 'TServerMethods1.QueryData';
FDStoredProc1.Prepare;
FDStoredProc1.ParamByName('sql').Value := 'select * from MyTable';
FDStoredProc1.open;
FDMemTable1.Close;
FDMemTable1.Data := FDStoredProc1.Data;

如果是字符串参数及返回字符串参数

  FDStoredProc1.Params.Items[0].Value := 'hello'; //入参
  Self.Caption := FDStoredProc1.Params.Items[1].Value; //返回参数

也可以通过ParamByName对Datasnap server的方法传参,是不是很方便?

  FDStoredProc1.Params.ParamByName('value').Value:= 'hello';
  FDStoredProc1.Params.ParamByName('retvlue').Value;

self.Caption:=  FDStoredProc1.Params.Items[0].Name;
self.Caption:=      FDStoredProc1.Params.Items[1].Name;

 

 

procedure TDepartmentsClientForm.Button3Click(Sender: TObject);
begin
  FDStoredProc1.Close;
  FDStoredProc1.Unprepare;
  FDStoredProc1.StoredProcName := 'TServerMethods1.ReverseString';
  FDStoredProc1.Prepare;
  FDStoredProc1.Params.Items[0].Value := 'hello';
  FDStoredProc1.Params.Count;
  FDStoredProc1.ExecProc;
  Self.Caption := FDStoredProc1.Params.Items[1].Value;

end;

procedure TDepartmentsClientForm.Button4Click(Sender: TObject);
begin

  FDStoredProc1.Close;
  FDStoredProc1.Unprepare;
  FDStoredProc1.StoredProcName := 'TServerMethods1.EchoString';
  FDStoredProc1.Prepare;
  FDStoredProc1.Params.Items[0].Value := 'hello';
  FDStoredProc1.Params.Count;
  FDStoredProc1.ExecProc;
  Self.Caption := FDStoredProc1.Params.Items[1].Value;

end;
View Code

相关文章: