以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这样的判断是不是很慢?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131576)

--  作者:blackzhu
--  发布时间:2019/3/1 17:25:00
--  这样的判断是不是很慢?
If e.Name = "服务器" Then
    If Connections.TryConnect("Provider=SQLOLEDB.1;Password=xxxx;Persist Security Info=True;User ID=SH;Initial Catalog=XJHIS;Data Source=xxxxx") = False Then
        e.C   C
    ElseIf Connections.TryConnect("Provider=SQLOLEDB.1;Password=*xxxx;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=xxxx") = False Then
        e.C   tifont-family: Verdana; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal;">    End If
End If


在这个BeforeConnectOuterDataSource 事件中
[此贴子已经被作者于2019/3/1 17:26:33编辑过]

--  作者:有点甜
--  发布时间:2019/3/1 17:27:00
--  

先ping你的ip地址,看能否连通

 

http://www.foxtable.com/webhelp/scr/2709.htm

 

然后再测试链接数据库。连接数据库,如果无法连接,一般要几十秒才能返回错误的


--  作者:blackzhu
--  发布时间:2019/3/1 19:14:00
--  
因为一些特殊的原因,我们的数据源需要变来变去.

我现在是这样的做法,我先将数据源定在一个内部的服务器的链接上,然后通过这个BeforeConnectOuterDataSource 事件判断修改:

\'If e.Name = "服务器" Then
\'If TryConnectHost("192.168.19.3") = False OrElse Network.Ping("192.168.19.3") = False Then
\'e.C
\'ElseIf TryConnectHost("192.168.1.3") = False OrElse Network.Ping("192.168.1.3") = False Then
\'e.C
\'End If
\'End If

在我的机器上IP自动获取,是在192.168.19.3的网段内 我打开是正常,但是我放到云端直接打开就一直链接不上.而且速度不是很快.

--  作者:有点蓝
--  发布时间:2019/3/1 20:53:00
--  
看看是不是这个问题:http://www.foxtable.com/webhelp/scr/2730.htm

云端其它网络应用慢不慢,云端放的是数据库还是Foxtable项目?
--  作者:blackzhu
--  发布时间:2019/3/1 22:28:00
--  
不是这个问题

If e.Name = "服务器" Then
            If Network.Ping("192.168.19.3", 1000) = False Then \'如果第一个IP无法接通
                e.C  ecti
            End If
        End If

这样判断貌似没有什么问题.

但是这样就不行!

If e.Name = "服务器" Then
            If Network.Ping("192.168.19.3", 1000) = False Then \'如果第一个IP无法接通
                e.Cc      ti
            ElseIf Network.Ping("192.168.1.3", 1000) = False Then \'如果第一个IP无法接通
                e.C  tionString =  "Provider=SQLOLEDB;Password=0000;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=00000"
            End If
        End If

这样就不行了,是什么原因?
[此贴子已经被作者于2019/3/1 22:29:06编辑过]

--  作者:有点蓝
--  发布时间:2019/3/1 22:46:00
--  
这个意思?

If e.Name = "服务器" Then
    If Network.Ping("192.168.19.3", 1000) Then \'如果第一个IP可以连接
         e.ConnectionString =  "Provider=SQLOLEDB;Password=0000;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=192.168.19.3"
    ElseIf Network.Ping("192.168.1.3", 1000) Then \'如果第二个IP可以连接
        e.ConnectionString =  "Provider=SQLOLEDB;Password=0000;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=192.168.1.3"
    End If
End If

--  作者:blackzhu
--  发布时间:2019/3/1 22:49:00
--  
是这样 我默认的数据源链接是用的这个

e.ConnectionString =  "Provider=SQLOLEDB;Password=0000;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=192.168.19.3"

如果192.168.19.3 不通的话 就用

e.ConnectionString =  "Provider=SQLOLEDB;Password=0000;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=192.168.1.3"  

这个链接

如果 192.168.1.3 再不通就用:
e.C  tionString =  "Provider=SQLOLEDB;Password=0000;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=00000"


这个链接

--  作者:有点蓝
--  发布时间:2019/3/1 22:57:00
--  
If e.Name = "服务器" Then
    If Network.Ping("192.168.19.3", 1000) = False Then
        If Network.Ping("192.168.1.3", 1000) Then
            e.ConnectionString =  "Provider=SQLOLEDB;Password=0000;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=192.168.1.3"
        Else
            e.ConnectionString =  "Provider=SQLOLEDB;Password=0000;Persist Security Info=True;User ID=sa;Initial Catalog=His;Data Source=0000"
        End If
    End If
End If

--  作者:blackzhu
--  发布时间:2019/3/1 23:05:00
--  
我试试 因为网不太好 所以测试不出结果
--  作者:blackzhu
--  发布时间:2019/3/2 15:33:00
--  
今日测试一下,是没有问题,但是发现在wifi状态下是没有办法判断,应该咋办?