使用ADOQuery作为DBgrid数据源,ADOQuery中的SQL语句是多表并带有分组函数的查询,无法通过DBgrid直接对数据进行修改,请问大家有什么好的解决方法?谢谢!
ADOQuery.FieldByName('field3').ReadOnly:=False;
ADOQuery.LockType:=ltBatchOptimistic;
ADOquerySQL语句如下:
select a.field1,a.field2,a.field3,s.tempcount from table1 a,
(select field1,field2,count(*) tempcount from table2
group by field1,field2) s
where a.field1=s.field1
and a.field2=s.field2
order by a.field1
ADOQuery.FieldByName('field3').ReadOnly:=False;
ADOQuery.LockType:=ltBatchOptimistic;
ADOquerySQL语句如下:
select a.field1,a.field2,a.field3,s.tempcount from table1 a,
(select field1,field2,count(*) tempcount from table2
group by field1,field2) s
where a.field1=s.field1
and a.field2=s.field2
order by a.field1
update table1 set field1=adoquery1.FieldBYName('field1).astring;,
如三层处理一样,
post之后还要adoquery1.updatebatch才能更新到库里
可以试一试重新指定表的方法