我的应用程序正在使用MySQL数据库连接我使用FireDAC组件。上次我遇到了网络问题,我测试它看起来像是(不时)它丢失了4个ping请求。我的应用程序返回错误:" [FireDAC] [Phys] [MySQL]在查询期间丢失了与MySQL服务器的连接"。现在的问题是:将fdconnection.TFDUpdateOptions.LockWait设置为true(默认为false)将解决我的问题或出现新问题?
答案 0 :(得分:1)
TFDUpdateOptions.LockWait
对您与数据库的连接没有影响。它确定无法立即获取记录锁定时发生的情况。 documentation非常明确地说:
使用LockWait属性控制FireDAC是否应在获取悲观锁定时等待(True),或者如果记录已被锁定则立即返回错误(False)。默认值为False。
仅当LockMode = lmPessimistic时才使用LockWait属性。
如果失去连接,FireDAC迫不及待地想要锁定,因为很明显无法请求锁定或确定是否已获得锁定。因此,更改LockWait
不会更改丢失的连接问题,并且可能会减慢针对数据的许多其他操作。
丢失ping请求的唯一解决方案是修复网络连接,以便停止丢弃数据包。只需随意更改TFDConnection
上的选项就无法解决网络问题。