Datasnap查询客户端

时间:2013-01-02 17:57:11

标签: delphi-xe datasnap

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

这将给我在dbgrid中所有20岁的人。就像我说我已经设法用过滤器做了这个,但过滤器不是100%正确的一两个奇数记录使它出现。

非常感谢您的协助

2 个答案:

答案 0 :(得分:2)

使用ClientDataset和参数的方法有很多种。试试这个。

服务器端:

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

    SELECT * FROM tbl_person WHERE person = :person

    将参数属性设置为correcto参数类型和数据类型。

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

  3. 运行服务器。
  4. 客户端:

    1. 放置TDSProviderConnection并连接到服务器并分配ServerClass
    2. 将TClientDataset连接到TDSProviderConnection并选择TDatasetProvider名称。
    3. 右TClientDataset并选择FetchParams
    4. 现在您可以为此参数指定任何值,让Datasnap框架完成剩下的工作。

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

答案 1 :(得分:0)

设置SQL命令:

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

将参数类型定义为Integer

设置参数值:

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

打开查询:

qry.Open;