从Delphi中的摘要SQL语句更新明细记录的最佳方法

时间:2019-06-29 20:18:40

标签: sql sqlite delphi unidac

在SQLite表(如以下SQL代码)中汇总详细记录的推荐方法是什么?让用户查看当前在DBGrid中的汇总记录,然后,当一切看起来都很好时,用户可以突出显示该行,然后按下“已处理”按钮,然后应使用“已处理”代码更新明细记录。 / p>

当前,我正在使用具有数据源(SQLite文件),Devart UniDAC UniQuery和DBGrid的Delphi VCL。 UniQuery具有以下SQL代码:

SELECT PartNum, StoreLoc, CostCenter,
  SUM( Weight )
  FROM tblMaster
  WHERE Weight > 0
  GROUP BY PartNum, StoreLoc, CostCenter
  HAVING Processed = 0

这实际上完美地填充了DBGrid,我可以选择单行或多行。然后,我应该能够按下一个确认交易的按钮,该交易应将明细记录中的“已处理”字段从0更改为1。

CREATE TABLE tblMaster ( PartNum text, Weight real, Emp text, Defect
text, StoreLoc text, CostCenter text, Date text, Time text, Processed
text );

以下是一些示例数据:

sqlite> select * from tblMaster
9986-0000|1.2|E1|D1|S1|CC1|6/28/2019|13:55|0
9986-0000|0.5|E1|D1|S1|CC1|6/28/2019|13:55|0
9986-0000|1.0|E1|D1|S2|CC1|6/28/2019|13:55|0
9986-0000|1.2|E1|D1|S3|CC1|6/28/2019|13:55|0
9986-0022|1.2|E1|D1|S1|CC1|6/28/2019|13:55|0
9986-0022|0.5|E1|D1|S1|CC1|6/28/2019|13:55|0
9986-0022|1.0|E1|D1|S2|CC1|6/28/2019|13:55|0
9986-0022|1.2|E1|D1|S3|CC1|6/28/2019|13:55|0

我唯一想到的方法是从DBGrid中获取突出显示的行,并简单地阅读每个详细记录并更新“已处理”字段。

0 个答案:

没有答案