我需要检测TAdoConnection组件何时丢失与服务器的连接.我尝试过使用OnDisconnect事件,但这仅在调用Close方法或Connected属性设置为false时触发.
我尝试过的另一个选择是使用TTimer并执行这样的查询
SELECT 1 RESULT FROM DUAL
Run Code Online (Sandbox Code Playgroud)
在OnTimer事件中,捕获发生的任何异常.
有没有更好的选择来检测连接丢失?
我正在尝试使用Delphi应用程序来使用AlwaysOn解决方案.我在Google上发现我必须MultiSubnetFailover=True在连接字符串中使用.
应用程序在Delphi XE3中编译并使用TADOConnection.
如果我Provider=SQLOLEDB在连接字符串中使用,应用程序启动但看起来MultiSubnetFailover=True没有效果.
如果我使用Provider=SQLNCLI11(我在Google上发现OLEDB不支持AlwaysOn解决方案而且我必须使用SQL Native客户端)我在尝试打开连接时获得无效属性.
连接字符串是:
Provider=SQLOLEDB.1;Password="password here";Persist Security Info=True;User ID=sa;Initial Catalog="DB here";Data Source="SQL Instance here";MultiSubnetFailover=True
Run Code Online (Sandbox Code Playgroud)
我是否必须升级到Delphi上的较新版本才能使用此故障转移解决方案,或者我是否在连接字符串中缺少某些内容?