我正在 Delphi 中使用 EMS(即:用于 future 的 iOS 应用程序)开发简单的客户端服务器应用程序。

在客户端单元上,我有 EMSProviderEMSFireDACClient,它们通过数据源从数据库 (MSSQL) 获取数据。

在服务器单元上,我有处理我的数据库的 FDConnectionTFDQuery。到目前为止,一切正常。

问题: 现在我需要将一些参数从客户端传递到服务器并获取结果数据。我应该如何使用 EMSEMS 中有任何可用的函数或过程吗?

关于源代码,一切都由相应的组件处理。所以编码部分非常少。

提前致谢。

最佳答案

EMS 调用类似于 REST 调用。您可以在路径(直接处理)中传递更多的 URL 参数 - 请参阅按 ID 获取项目的默认实现)和作为额外的查询参数。那些在请求对象中。要传递它们,请在客户端中使用自定义端点。

以下是更多信息:

服务器声明:

[ResourceSuffix('{item}')]
procedure GetItem(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

服务器实现:
procedure TNotesResource1.GetItem(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);
var
  LItem: string;
begin
  LItem := ARequest.Params.Values['item'];
  ...

端点的客户端配置:
object BackendEndpointGetNote: TBackendEndpoint
  Provider = EMSProvider1
  Auth = BackendAuth1
  Params = <
    item
      Kind = pkURLSEGMENT
      name = 'item'
      Options = [poAutoCreated]
    end>
  Resource = 'Notes'
  ResourceSuffix = '{item}'
end

客户电话:
  BackendEndpointGetNote.Params.Items[0].Value := AID;
  BackendEndpointGetNote.Execute;

希望这可以帮助。

关于sql-server - 德尔福 EMS FireDAC : How to pass parameter from client to server using EMS?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26507557/

10-13 05:20