以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 计划管理里的代码提示超时已过期  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=49036)

--  作者:bobolan521
--  发布时间:2014/4/11 8:57:00
--  [求助] 计划管理里的代码提示超时已过期

代码是在计划管理里的,30秒执行一次

 

Dim xinxj As String = "Provider=SQLOLEDB;Password=1UmeLz2Qy4KX;Persist Security Info=True;User ID=OpenMas8020005;Initial Catalog=OpenMas;Data Source=111.1.2.106,1433\\SQLEXPRESS"


\'\'\'取接收表第一条内容

If Forms("处理数据").Opened = False Then
    If Connections.TryConnect(xinxj) = True Then   \'\'\'能链接
        If Connections.Contains("xinxj") = False    \'\'\'\'不存在XINXJ数据源
            Connections.Add("xinxj",xinxj)
        End If
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "select top 1 * from Com_SmsIn_db8020005"
        dt = cmd.ExecuteReader()
        \'\'\'取接收表第一条内容
        If dt.DataRows.Count =1 Then
            Forms("处理数据").open
        End If
       
    Else
        Forms("数据源无法链接").open
        If  Connections.Contains("xinxj") = True
            connections.Delete("xinxj")                 \'\'\'\'\'\'\'\'删除数据源
        End If
    End If
End If

[此贴子已经被作者于2014-4-11 8:58:02编辑过]

--  作者:Bin
--  发布时间:2014/4/11 9:00:00
--  
连接服务器 太久没有连接上就会出现这个问题.
--  作者:bobolan521
--  发布时间:2014/4/11 9:05:00
--  

可不可以设置时间,如果几秒内连接不上,就不连接了,因为连接不上会导致我程序死掉,如何修改代码让程序不会死掉

[此贴子已经被作者于2014-4-11 9:06:17编辑过]

--  作者:Bin
--  发布时间:2014/4/11 9:09:00
--  
  • CommandTimeOut
    设置超时时限,默认为30秒,一般不需要设置此属性,除非需要进行非常耗时超过30秒的操作,以至于出现超时错误,此时可适当地加大CommandTimeOut属性的值。


--  作者:bobolan521
--  发布时间:2014/4/11 9:16:00
--  

   If Connections.TryConnect(xinxj) = True Then   \'\'\'能链接
如果用了CommandTimeOut ,那我的代码里上面的这句是不是就可以省掉了,

cmd.CommandTimeOut = 20 这么写对不对, 应该写在哪句代码下面呢?

[此贴子已经被作者于2014-4-11 9:18:55编辑过]

--  作者:Bin
--  发布时间:2014/4/11 9:19:00
--  
两个互不相干   一个是设置超时时间   一个是测试是否可以连通
--  作者:bobolan521
--  发布时间:2014/4/11 9:20:00
--  
测试是否能连通,这个测试时间是多久呢?比如说可不可以指定用5秒来判断
--  作者:Bin
--  发布时间:2014/4/11 9:24:00
--  
不可以

希望快点可以用PING 来测试服务器是否通


--  作者:bobolan521
--  发布时间:2014/4/11 9:26:00
--  

那台服务器不可以让我们PING的,这么说没办法解决了

如果用了CommandTimeOut ,那我的代码里上面的这句是不是就可以省掉了,

cmd.CommandTimeOut = 20 这么写对不对, 应该写在哪句代码下面呢?

[此贴子已经被作者于2014-4-11 9:26:25编辑过]

--  作者:狐狸爸爸
--  发布时间:2014/4/11 9:56:00
--  

例如,最多允许用10秒判断:

 

if Connections.Tryconnect("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=订单;Data Source=110.110.110.110;Connect Timeout = 10;")

then