如何在dbgrid中检查TADODataSet的可用性?

时间:2018-06-14 21:11:56

标签: sql-server delphi exception-handling grid tadodataset

我在VCL表单上使用DBGrid。网格使用来自 TADOConnection 查询的记录填充。在语义上它看起来像这样:




    

  • 建立与数据库的连接(SQL Server);
  • 

  • 将一些记录提取到 TADODataSet 数据集;
  • 

  • 使用 TDataSource 对象连接数据集;
  • 

  • DataSource 对象连接到DBGrid。
  • 





我的网格立即发布,这意味着已编辑数据立即发布到数据库。一切正常,直到连接关闭(网络关闭,笔记本电脑的盖子关闭等)。





当连接丢失时,我无法编辑记录Grid,导致 EOleException TCP PRovider:现有连接被远程主机强行关闭)abd EDatabaseError 通信链接失败)。





我想抓住连接丢失并重新建立连接,但我不知道如何。我检查了网格的所有特定于数据的事件,但问题出现的时间早于网格的任何事件。





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




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




非常感谢任何帮助。




0 个答案:

没有答案