我在VCL表单上使用DBGrid。网格使用来自 TADOConnection
查询的记录填充。在语义上它看起来像这样:
TADODataSet
数据集; TDataSource
对象连接数据集; DataSource
对象连接到DBGrid。我的网格立即发布,这意味着已编辑数据立即发布到数据库。一切正常,直到连接关闭(网络关闭,笔记本电脑的盖子关闭等)。


当连接丢失时,我无法编辑记录Grid,导致 EOleException
( TCP PRovider:现有连接被远程主机强行关闭)abd EDatabaseError
(通信链接失败)。
我想抓住连接丢失并重新建立连接,但我不知道如何。我检查了网格的所有特定于数据的事件,但问题出现的时间早于网格的任何事件。


我认为问题出在数据集级别,但我不知道如何捕捉异常。有谁知道如何检查数据集的可用性?然后我可以编写一些代码来重新连接。这样的事情:


 如果没有Assigned(DataSet)那么
 //重新连接



 非常感谢任何帮助。