【发布时间】:2016-11-15 17:15:58
【问题描述】:
我已经设置了我使用名为Connect 的按钮创建的delphi 应用程序。
一旦我点击它,它就会执行以下代码:
begin
someConnection.Connected:=true;
somecomenziDataSet.Active:=true;
end;
同样,我有一个用于Disconnect 目的的按钮,它做同样的事情,但使用 =false;
我的问题是我要连接的数据库托管在共享主机帐户上,并且 mysql 服务器将 wait_timeout 变量设置为 60 秒,interactive_timeout 设置为 30 秒。
如果我 60 秒不使用我的应用程序,这自然会断开我的连接。
有什么办法可以保持这种联系吗?
托管公司不会更改设置,所以我坚持使用它。
我正在使用 RAD Studio 10 Seattle,dbexpress components,TSQLConnection,我的数据库是 mysql
如果我遗漏了任何必要的信息,请在评论中告诉我,谢谢!
【问题讨论】:
-
每隔 10 秒左右“ping”一次数据库。
-
@kobik 你能为此提供一个代码示例吗?我确实在谷歌搜索时遇到了 mysql_ping 并且我考虑将其添加到 TTimer 但尚未找到有关如何执行此操作的代码示例,如果您愿意,可以将其作为答案,以便我可以接受,我将不胜感激,谢谢!
-
也许@Kobik 正在考虑执行“SELECT 1”(这涉及很少的服务器活动或网络流量)。
-
您可以有多个查询共享同一个连接。只需为定期活动创建另一个查询。
-
我认为计时器中的
TSQLConnection.Exceute('DO 0', nil)可以完成这项工作。
标签: mysql sql delphi dbexpress