以文本方式查看主题 - 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 -- |
-- 作者: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状态下是没有办法判断,应该咋办? |