在我的框架中,我有一個DataSource1實例,它在設計時被放在窗體上。
在運行時,我需要將它「轉換」爲另一個DataSource2(在數據模塊上)的引用。將對象實例轉換爲另一個實例的引用?
,就是設定:
DataSource1 := DataSource2;
足以讓DataSource1 DataSource2的參考?看起來DataSource1在這一點上並未被銷燬 - 當DataSource2的所有者被銷燬時它被銷燬,並且實際上有兩個TDataSource實例。
或者我需要首先顯式釋放DataSource1?
DataSource1.Free;
DataSource1 := DataSource2;
什麼是正確的方法? (除了首先聲明DataSource1作爲參考)
首先可能有用的是知道這是什麼目的。你在做這個嗎?因爲你有一些「背景」數據集正在工作,並且在其工作完成後,通過這種方式「重新連接」數據源來填充數據?如果是這樣,那麼我寧願重新分配數據源的數據集。 – TLama
@TLama,我明白了什麼意思。這個問題與DB設計沒有多大關係。其目的有點複雜:我們有一個基類窗體,它將集中的TDataSource暴露給它的底層db-aware控件。 (它默認是持久的),但有時它應該被引用到另一個DataSource。我知道我可以在那個持久的DataSource中設置/更改DataSet(並且這是正確的方式),但我只是想了解該實例引用。 – ZigiZ