Delphi-ClientDataSet-验证数据

Delphi-ClientDataSet-验证数据,delphi,delphi-7,tclientdataset,Delphi,Delphi 7,Tclientdataset,我在Delphi7中有一个应用程序,它使用clientdataset,并对其进行了一些操作。ClientDataSet链接到Intraweb网格 我在ClientDataSet上进行插入或编辑。如何验证clientdataset中为每个字段引入的数据?我无法验证用户在webform上的输入,因此必须使用ClientDataSet事件进行验证 LE:我想在用户输入时验证数据。不是在onbeforepost事件中。因此,我将clientdataset放在edit/insert中。用户在网格中输入,我

我在Delphi7中有一个应用程序,它使用clientdataset,并对其进行了一些操作。ClientDataSet链接到Intraweb网格

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

LE:我想在用户输入时验证数据。不是在onbeforepost事件中。因此,我将clientdataset放在edit/insert中。用户在网格中输入,我想验证clientdataset中该行的数据,如下图所示:


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

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

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

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

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

t为此,该字段有一个OnValidate事件。它还有一个CustomConstraint属性,可以对约束使用类似SQL的语法。如果没有给定值,DefaultExpression将允许您选择一个值。这些通常用于单字段验证。如果需要跨多个字段进行更复杂的检查,则必须使用dataset或datasource事件


无论如何,如果Intraweb网格发送服务器整个记录,而不是单个字段编辑,则您可能不会在网格中输入字段时验证字段,而是在客户端添加代码。

t为此,字段有一个OnValidate事件。它还有一个CustomConstraint属性,可以对约束使用类似SQL的语法。如果没有给定值,DefaultExpression将允许您选择一个值。这些通常用于单字段验证。如果需要跨多个字段进行更复杂的检查,则必须使用dataset或datasource事件


无论如何,如果Intraweb网格发送服务器整个记录而不是单个字段编辑,则您可能不会在网格中输入字段时验证字段,而是在客户端添加代码。

或者更好,提出一个适当的异常以显示给用户。我看到了这个问题-。谢谢+1@RBA在这种情况下,要求用户确认保存更改。因为用户已经回答了一个问题,所以需要一个静默异常。在这种情况下,用户正在发布更新,如果在没有错误消息的情况下忽略更新,可能会感到惊讶/困惑。我将问题修改为更明确。为什么不使用DataSet?取消?或者更好,提出适当的异常以显示给用户。我看到了此问题-。谢谢+1@RBA在这种情况下,要求用户确认保存更改。因为用户已经回答了一个问题,所以需要一个静默异常。在这种情况下,用户正在发布更新,如果在没有错误消息的情况下忽略它,可能会感到惊讶/困惑。我将问题修改为更明确。为什么不发布数据集?取消?