Delphi Dev Express TcxDBTimeEdit 以及如何处理空值?

问题描述 投票:0回答:1

Delphi Dev Express TcxDBTimeEdit 以及如何处理空值?

我正在尝试在 Delphi 中使用 Dev Express TcxDBTimeEdit 组件,我希望用户能够使用鼠标选择全部并删除键进行清除,并在关联的数据库列字段值中存储 null。

我不知道如何实现这一目标。

我已经尝试过这个,但它不起作用,在组件退出事件中:

    if
       (cxDBTimeEdit1.Text = '00:00 AM')
       or (cxDBTimeEdit1.Text = '12:00 AM')
       or (cxDBTimeEdit1.Text = '')
    then dmClaimLine.qryClaimLineTimeOfService.AsString:='';
delphi null devexpress
1个回答
0
投票

您的代码直接使用控件状态而不是数据库状态。

您应该尝试使用基础数据集中的实际基础字段来处理事情。

您的控件是 cxDBTimeEdit 这一事实对于您的问题来说并不重要。

dmClaimLine.qryClaimLineTimeOfService.AsString:='';

无论你认为它会做什么,它可能不会这么做。

如果您使用数据集直接编辑行值,您需要指定如何执行此操作。根据您用于访问数据库的组件集以及您要连接的数据库的不同,您的操作方式也会有所不同,但您尚未指定其中任何一个。

当您应该针对数据库访问组件 (DAC) 进行编码时,您正在针对可视控件进行编码。 例如,如果您使用 ADO,并且您有一个名为 ClaimLine 的 ADOTable,您可能需要执行此操作

ClaimLine.Edit;
ClaimLineTimeOfService.Clear; // make a field null
ClaimLine.Post;

如果您使用 SQL 更新语句进行更新,您可能会这样做

© www.soinside.com 2019 - 2024. All rights reserved.