【问题标题】:Delphi EMS FireDAC: How to pass parameter from client to server using EMS?Delphi EMS FireDAC:如何使用 EMS 将参数从客户端传递到服务器?
【发布时间】:2014-12-17 21:49:09
【问题描述】:

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

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

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

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

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

提前致谢。

【问题讨论】:

    标签: sql-server delphi firemonkey firedac ems


    【解决方案1】:

    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;
    

    希望这会有所帮助。

    【讨论】:

    • 感谢您的回复。但是你能告诉我更多关于请求对象以及如何在客户端中使用自定义端点的信息吗?有什么例子吗? (我是这个话题的新手)。
    • 我在下面的link 中发布了另一个与此问题相关的问题。你能帮我解决这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    相关资源
    最近更新 更多