我在用Delphi6
并有一个数据模块ADO
DataSet
它由两种形式使用,formS 和 Form B。每种形式都有一个Dataset.Open()
in OnCreate
and Dataset.Close()
in OnClose
。如果两个表单同时打开并且 formB 关闭,则数据集在 formA 中关闭。我怎样才能防止这种情况,本质上我需要为每个表单提供单独的数据集实例,但同时使用数据模块。
实现您想要的最简单的方法是为每个表单创建一个数据模块的实例,并将其传递给表单,以便在表单关闭时可以释放它:
var
Data: TDataModule;
begin
Data := T<YourDataModule>.Create(Self);
try
Form := T<YourForm>.Create(Self);
Form.DataModule := Data;
Data.Name := '';
except
Data.Free;
raise;
end;
Form.Show;
end;
将 DataModule 的名称设置为空字符串是为了确保将数据感知控件连接到其数据源/数据集的 VCL 逻辑是使用新创建的实例而不是第一个实例来完成的。
在表单的 OnClose 处理程序(或其析构函数)中,确保释放数据模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)