在我的框架中,我有一个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