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:='';
您的代码直接使用控件状态而不是数据库状态。
您应该尝试使用基础数据集中的实际基础字段来处理事情。
您的控件是 cxDBTimeEdit 这一事实对于您的问题来说并不重要。
dmClaimLine.qryClaimLineTimeOfService.AsString:='';
无论你认为它会做什么,它可能不会这么做。
如果您使用数据集直接编辑行值,您需要指定如何执行此操作。根据您用于访问数据库的组件集以及您要连接的数据库的不同,您的操作方式也会有所不同,但您尚未指定其中任何一个。
当您应该针对数据库访问组件 (DAC) 进行编码时,您正在针对可视控件进行编码。 例如,如果您使用 ADO,并且您有一个名为 ClaimLine 的 ADOTable,您可能需要执行此操作
ClaimLine.Edit;
ClaimLineTimeOfService.Clear; // make a field null
ClaimLine.Post;
如果您使用 SQL 更新语句进行更新,您可能会这样做