如果外部ADO连接已连接或断开,如何检测组件内部?

时间:2012-11-23 03:15:56

标签: delphi events properties components delphi-xe2

我正在处理一个与数据库一起工作的组件,并且通过TADOConnection属性从该组件的外部指定数据库连接,该属性在Object Inspector中可见。我假设外部用户可能打算使用此ADO组件的事件。然而,我还需要能够检测何时连接或断开连接以及其他各种事件。我是否可以获取TADOConnection的事件而不覆盖外部用户可能已分配的事件处理程序?

1 个答案:

答案 0 :(得分:5)

没有严重的副作用和/或严格的限制,没有解决方案。

您必须重新路由事件,但是......

外部用户可以在设计时修改事件(可以在某种程度上处理),但也可以在运行时修改事件,并且每种方法都会中断。

作为(可能)可能的解决方法(并且它是一个限制),您可以从TADOConnection发布自己的下降并强制外部用户使用它,并实现多播事件。

如果您只是想了解连接/断开事件,可以调用受保护的方法TCustomConnection.RegisterClient(unit Data.DB)