以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据源IP无法正确选择  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153135)

--  作者:shyilin4
--  发布时间:2020/8/1 8:03:00
--  数据源IP无法正确选择
在BeforeConnectOuterDataSource写入这个

 Select Case e.Name
    Case "外部数据源","系数" 
        If Network.Ping("192.168.1.123",1000) = False  Then     
            e.ConnectionString = e.ConnectionString.Replace("192.168.1.123", "外网IP")
        End If       
End Select

但是系统很不稳定,经常会登录不上,我的目的是内网能登录上就用内网,内网登录不上就用外网IP,请老师帮忙指导一下

--  作者:shyilin4
--  发布时间:2020/8/1 10:54:00
--  
 有老师在吗?
--  作者:有点蓝
--  发布时间:2020/8/2 9:57:00
--  
 Select Case e.Name
    Case "外部数据源","系数"  
        If Network.Ping("192.168.1.123",1000) = False  Then      
            e.ConnectionString = e.ConnectionString.Replace("192.168.1.123", "外网IP")
msgbox(e.ConnectionString) ‘连接字符串是否正常?这台客户端能不能连接外网?
        End If        
End Select

--  作者:shyilin4
--  发布时间:2020/8/5 20:54:00
--  
 连接字符串是正常的,是偶尔连接不了,会不会这样的问题,比如在外网登录时候,本地也有192.168.1.123,能连接通,但是不是服务器,没有切换到外网的IP
--  作者:有点蓝
--  发布时间:2020/8/6 8:32:00
--  
既然本地也有192.168.1.123,能连接通,肯定就不会切换呀。代码就是这样判断的
--  作者:shyilin
--  发布时间:2020/8/6 9:30:00
--  
 那我有什么方法可以解决这个问题呢
--  作者:有点蓝
--  发布时间:2020/8/6 9:36:00
--  
本地服务器改为不容易冲突的IP,比如:192.168.1.254,或者192.168.1.1,然后到路由里限制一下ip地址分配从范围:192.168.1.10~192.168.1.250,这样其他电脑分配IP地址的时候就不会和服务器冲突了
--  作者:shyilin
--  发布时间:2020/8/6 9:51:00
--  
 我们都是出差在外面的,别人宾馆是控制不了的,在我们这里是没问题
--  作者:有点蓝
--  发布时间:2020/8/6 9:53:00
--  
那就做成可配置的,自己指定IP

你也可以用另一种方法解决,在项目文件目录下创建一个ip.txt的文本文件,在该文件中输入最新的IP地址,并在BeforeConnectOuterDataSource事件中设置如下代码:

Dim ipFile As String = e.ProjectPath & "ip.txt"
If
 e.Name = "销售数据" Then
    If
 Filesys.FileExists(ipFile) Then
        Dim
 ip As String = FileSys.ReadAllText(ipFile)
        e.ConnectionString = e.ConnectionString.Replace("119.119.120.120",ip)
    End 
If

End
 If