Delphi和共享数据源

Eli*_*pos 2 delphi datasource

在我的应用程序中,我有不同的表单使用相同的数据源(因此查询也是相同的),在公共数据模块中定义.问题是,有没有办法知道我打开一个特定的查询多少次?通过能够做到这一点,我可以避免关闭该查询而不关闭它"在其他地方".

编辑:重要的是要提到我使用的是Delphi3,它不是单个查询,而是几个.

Fra*_*ois 5

我们的想法是使用TDataSource 的DataLinks属性.
但是,由于它受到保护,您必须获得访问权限.一个常见的技巧是创建一个假的后代只是为了铸造:

type
  TDataSourceHack = class(TDataSource);
Run Code Online (Sandbox Code Playgroud)

然后你使用它像:

  IsUsed := TDataSourceHack(DataSource1).DataLinks.Count > 0;
Run Code Online (Sandbox Code Playgroud)