1

我不明白如何使用参数,找到一个合适的使用参数的例子有点困难。我确实设法使用它完成工作的客户端数据集过滤器,但我相信它也可以用 sql 完成。datasnap 不允许这样的查询,我在我的研究中读到我必须使用参数。我只是不明白。我需要一个适当的示例,其中使用 datasnap 设置服务器/客户端,并且可以从类似于 sql 的客户端查询:SELECT * FROM tbl_person WHERE person = 20

这将为我提供 dbgrid 中所有 20 岁的人。就像我说的那样,我已经设法使用过滤器来做到这一点,但过滤器不是 100% 正确的,一两个奇怪的记录使它出现。

您的帮助将不胜感激

4

2 回答 2

2

有很多方法可以使用 ClientDataset 和参数。试试这个。

服务器端:

  1. 在 ServerClass 上放置一个 TSqlQuery 并在其中输入 Sql 语句:

    SELECT * FROM tbl_person WHERE person = :person

    将参数属性设置为正确的参数类型和数据类型。

  2. 放置一个 TDatasetProvider 并连接到 TSQLQuery

  3. 运行服务器。

客户端:

  1. 放置一个 TDSProviderConnection 并连接到服务器并分配 ServerClass
  2. 将 TClientDataset 连接到 TDSProviderConnection 并选择 TDatasetProvider 名称。
  3. 右键 TClientDataset 并选择 FetchParams

现在您可以为该参数分配任何值,让 Datasnap 框架完成其余的工作。

检查这些来源以获取更多信息:

于 2013-01-02T18:52:22.150 回答
0

设置 SQL 命令:

qry.SQL.Text := 'SELECT * FROM tbl_person WHERE age = :age';

将参数类型定义为 Integer

设置参数值:

qry.ParamByName('age').AsInteger := 20;

打开查询:

qry.Open;
于 2013-01-06T13:53:49.580 回答