以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何判断数据源是否可用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48205)

--  作者:9EQ98
--  发布时间:2014/3/25 9:48:00
--  [求助]如何判断数据源是否可用

例:设计了一个间隔为10秒的计划管理,读取服务器日期写入系统全局变量

 

Dim cmd As New SQLCommand
Dim dt As Date
cmd.C
cmd.CommandText = "Select GetDate() as date_now"
dt = cmd.ExecuteScalar()

_Date_Value = dt.Date     \'赋值日期部分,给全局系统变量:_Date_Value

 

当数据源:"Master"不可用时,请问怎样判断?

请问除了用PING 的方法,还有其他方法吗?因为数据源服务器禁拼



--  作者:Bin
--  发布时间:2014/3/25 9:52:00
--  
利用TryConnect


--  作者:9EQ98
--  发布时间:2014/3/25 10:16:00
--  

从数据源提取当前服务器日期,每45秒读取一次,

如果网络不通,读取不到服务器的时间,将计划间隔时间改为20分钟检测一次

 

在计划管理中,新建一个计划:获取服务器日期

代码如下:

 

Dim cn As Connection = Connections("Master")
Dim Connection_String As String = cn.ConnectionString

If Connections.TryConnect(Connection_String) = False Then
   \'MyTimers("获取服务器日期").Enabled = False  \'暂停计划执行
   MyTimers("获取服务器日期").Interval = 1000*1200  \'更改计划执行间隔为 20分钟(1200秒)
Else
    Dim cmd As New SQLCommand
    Dim dt As Date
    cmd.C
    cmd.CommandText = "Select GetDate() as date_now"
    dt = cmd.ExecuteScalar()
    _Date_Value = dt.Date
    MyTimers("获取服务器日期").Interval = 1000*45  \'更改计划执行间隔为 45秒(45秒)
End If