使用缓存更新技术+TUpdateSql控件就可完全达到你的要求。前期我已做过一个相似的小程序。

解决方案 »

  1.   

    把ORDER BY 1 改为ORDER BY [字段] 
    就行了
      

  2.   

    试试我的方法吧!设置query1的CachedUpdates:=True;
                RequestLive:=True;
                UpdateObject:=UpdateSql1;procedure TDataMd1.Query1BeforeClose(DataSet: TDataSet);
    begin
     with Query1 do if UpdatesPending then ApplyUpdates;
    end;设置UpdateSql1的三种Sql语句。基本上是这样设置,设置好后就如编辑一般的表一样,
    而当更改Query1中的数据后,只要设置了Query1的BeforeClose事件,
    当关闭了Query1后,Query1会自动更新数据。当然这仅是对单表的Query1而言,对于多表的Query1,
    就比较麻繁,有兴趣不妨参照李维的多层分布式一书。