剛開始接觸三層結構,按照李維的三大巨著的<系統篇>上面介紹的實現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萬多條記錄,但是,三層的結構在速度上不應該這樣讓人難以忍受啊.誰知道是為什麼啊.
應用程序服務器:
使用控件: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萬多條記錄,但是,三層的結構在速度上不應該這樣讓人難以忍受啊.誰知道是為什麼啊.
還是老老實實的用sql查詢detail的記彔吧.