背景:
我使用delphi5当TClientDataSet拥有数据之后,它的列是不能够增加删除的。但是客户端对于
数据的显示可能是多种多样的,于是我只好不断重复增加中间层的方法。每种显示
方式对应两个方法:Load 和Save。(我更新的方法是用delta+ApplyUpdates)
由于dbgrid这种控件无法同时和两个数据集联合,或者说我无法自由的组合
客户端的数据集,比如“无法在dataset里面使用sql”,这一点似乎.net做得好的多

解决方案 »

  1.   

    好好看看lw的《Delphi5分布式多层系统》,你的问题可以被解决。
      

  2.   

    可能我的意思没有表达清楚。这里我想举一个实际的问题:
    比如有个table叫tableA,但是我在客户端有两个tableA的映射。View1,View2
    其中View1有一个计算出来的字段叫做field1
    其中View2有一个计算出来的字段叫做field2
    并且在客户端,field1,field2都要能修改。于是我有两个中间层方法
    function TXXXDataModual.GetView1:OleVariant;
    begin
      Execsql('select *,xxxx as Field1 from TableA');
    end;
    其中xxxx是TableA中已经有的字段,并且和Field1需要的类型一致。
    GetView2有类似地实现。我觉得这样做十分的不地道,而且增加了服务段的负担和复杂度。
    因为现在的情况是客户端的view十分的多且经常变化——我不想
    修改、增加客户端的view就要修改服务端。另外每获得一次view
    就要调用一次中间件方法,我觉得最好的方法是获得一次数据,
    在客户端可以将其组合拆分获得各式各样的view.
    (注:此处view不是DataBase中的view。希望大家能够耐心读完,提出
    一些办法。谢谢大家!)
      

  3.   

    samcrm(阿靖)大哥所说的lw的那本书似乎只是说明了读取、更新数据的方法吧?
    好像并不是我所需要的。请明示第几章如何?呵呵!辛苦了!