一個ADO源碼問題。。。有點不理解。。。請指教。。(200分)

  • 主题发起人 主题发起人 hzjone
  • 开始时间 开始时间
H

hzjone

Unregistered / Unconfirmed
GUEST, unregistred user!
主從關聯表。<br>select * from detailtable where detailfield =:Masterfield <br>我的問題是,子表肯定是通過主表的FILTER來實現子表的顯示,。。。請問,在ADODB這個單元中,那段代碼有寫到。。小弟,一時找不到。。。又想知道,不然睡不著了。。。
 
:Masterfield <br>这个是
 
没看懂问的什么[:D]
 
1、在adodataset的create事件中设置<br> &nbsp; MasterDataLink.OnMasterChange := MasterChanged;<br>2、当master表的master字段数据发生变化时<br>procedure TCustomADODataSet.MasterChanged(Sender: TObject);<br>begin<br> &nbsp; ............<br> &nbsp; &nbsp;RefreshParams;<br>end;<br>3、在RefreshParams中调用了SetParamsFromCursor<br>procedure TCustomADODataSet.RefreshParams;<br>begin<br> &nbsp; .................<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SetParamsFromCursor;<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Requery;<br> &nbsp; ..........<br>end;<br>4、在SetParamsFromCursor进行赋值<br>procedure TCustomADODataSet.SetParamsFromCursor;<br>var<br> &nbsp;I: Integer;<br>begin<br> &nbsp;if MasterDataLink.DataSource &lt;&gt; nil then<br> &nbsp; &nbsp;for I := 0 to MasterDataLink.Fields.Count - 1 do<br> &nbsp; &nbsp; &nbsp;with TField(MasterDataLink.Fields) do<br> &nbsp; &nbsp; &nbsp; &nbsp;Parameters.ParamByName(FieldName).Assign(MasterDataLink.Fields);<br>end;<br>5、完毕。
 
TYZhang,正確,哈哈。。這個問題比較少答得出來,,
 
后退
顶部