剛開始接觸三層結構,按照李維的三大巨著的<系統篇>上面介紹的實現MASTER/DETAIL結構做了一個例子,簡單的介紹如下:
應用程序服務器:
      使用控件:ADOConnection:cn
              ADODataset:(Master)and(Detail)
              DataSource:ds
              DatasetProvider:dsp
      設置如下:(Master)and(Detail).connection:=cn
              Detail.datasource:=ds
              ds.Dataset:=Master
              Detail.MasterFields:='linkfield'
              dsp.dataset:=Master;
客戶端:
  
       DBGridMaster.datasource(name:datasour1).dataset(name:clientdataset1).remoteserver(name:DCOMcn)
           clientdataset1.providername:=dsp
       DBGridDetail.datasource(name:datasour2).dataset(name:clientdataset2)
           clientdataset2.datasetfield:='clientdataset1linkfield'
然後,當我clientdataset1.active:=true的時候,數據確實是按預期的方式顯示,但是,問題是:為什麼不管我是在設計的時候,還是在運行時,速度明顯的有點慢?雖然我的明細表裡面有20多萬條記錄,主表裡面有4萬多條記錄,但是,三層的結構在速度上不應該這樣讓人難以忍受啊.誰知道是為什麼啊.

解决方案 »

  1.   

    呵呵,用MASTER/DETAIL肯定慢.
    還是老老實實的用sql查詢detail的記彔吧.
      

  2.   

    这个跟他给出的Mater/Detail实现方法没有太大关系,关键是你的数据量,,你是不是一次把所有数据都下栽到客户端了?如果你的程序一定要求这样,用SQL查,效率也是一样,你还要自已维护主从关系。------ 改良的方法,你可以优化你的算下,只在客户端下栽需要的数据。