Delphi - ClientDataSet - 验证数据

时间:2011-05-23 10:02:59

标签: delphi delphi-7 tclientdataset

我在Delphi 7中有一个使用clientdataset的应用程序,并对其进行了多次操作。 ClientDataSet链接到Intraweb网格。

我在ClientDataSet上进行插入或编辑。如何验证clientdataset中为每个字段引入的数据?我无法在webform上验证用户的输入,因此我必须使用ClientDataSet事件进行验证。

LE:我想在用户输入时验证数据。不在onbeforepost事件。所以,我把clientdataset放在编辑/插入中。用户在网格中输入,我想在clientdataset中验证该行的数据,如下图所示:

enter image description here

第一列是字符串,第二列是整数,第三列也是整数。现在,我想在用户输入后验证第三列。必须完成此验证(如果可能),仅使用clientdataset事件/黑客。

3 个答案:

答案 0 :(得分:3)

您应该处理TClientDataset BeforePost事件,如果数据无效,请使用abort方法

答案 1 :(得分:3)

TField为此目的有一个OnValidate事件。它还有一个CustomConstrain属性,可以使用类似SQL的语法来约束。如果没有给出值,DefaultExpression将允许您选择一个值。这些用于单场验证。如果需要跨多个字段进行更复杂的检查,则必须使用数据集或数据源事件。

无论如何,如果Intraweb网格向服务器发送整个记录而不是单个字段编辑,则可能无法验证字段,因为它们是在网格中输入的,但是添加了代码客户端。

答案 2 :(得分:1)

如果需要基于字段的验证,可以处理将网格连接到数据集的TDatasource的OnDataChange事件。只要用户更改了字段,就会触发此操作。您应该知道它也会在其他一些情况下触发。