Foxtable(狐表)用户栏目专家坐堂 → 局域网与外部网络访问数据库切换链接问题


  共有4287人关注过本帖树形打印复制链接

主题:局域网与外部网络访问数据库切换链接问题

帅哥,在线噢!
z769036165
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:762 积分:5456 威望:0 精华:0 注册:2012/10/5 21:53:00
局域网与外部网络访问数据库切换链接问题  发帖心情 Post By:2021/7/28 11:13:00 [显示全部帖子]

需要实现,在局域网访问时候数据库链接使用内部局域网IP访问,在出差外网访问的时候,切换访问web数据源访问,在BeforeConnectOuterDataSource
设置以下代码,结果没作用
默认设置的数据库链接是采用的局域网内的连接,目前是判断这个链接不上,就换成这个WEB数据源访问
If TryConnectHost("192.168.3.10")  = False Then
    If Network.Ping("192.168.3.10",1000) = False Then '如果第一个IP无法接通
        Select Case e.Name
            Case "shujk"
                Dim sb As New StringBuilder
                sb.AppendLine("http://222.168.xxx.xxx:8000/DataServer.htm")
                sb.AppendLine("-FormData-")
                sb.AppendLine("UserName:xxxxxx")
                sb.AppendLine("Password:xxxxxxxxxxx")
                e.ConnectionString = sb.ToString()
     End If
End If

 回到顶部
帅哥,在线噢!
z769036165
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:762 积分:5456 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/7/28 18:16:00 [显示全部帖子]

---------------------------
错误
---------------------------
创建外部连接"shujk"失败,请联系管理员或开发者,重新设置数据链接字符串!
---------------------------
确定   
---------------------------
直接显示这个没弹出内容

 回到顶部
帅哥,在线噢!
z769036165
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:762 积分:5456 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/7/29 11:10:00 [显示全部帖子]

直接连接没有问题,现在好像问题在BeforeConnectOuterDataSource这个地方,没有先做判断,而是先进行了局域网的数据库连接,然后连接不上局域网数据库报错,报错后才出现msgbox(1)、msgbox(e.Name)弹窗

 回到顶部
帅哥,在线噢!
z769036165
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:762 积分:5456 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/7/29 11:20:00 [显示全部帖子]

If TryConnectHost("192.168.3.10")  = False Then
msgbox(1)
    If Network.Ping("192.168.3.10",1000) = False Then '如果第一个IP无法接通
msgbox(e.Name)
        Select Case e.Name
            Case "shujk"
                Dim sb As New StringBuilder
                .....
     Case  "另外一个"
......
msgbox(e.ConnectionString)
     End If
End If
有2个,另外一个也包在里面了,之前If TryConnectHost("192.168.3.10")  = False Then没有加的,就是不行,所以以为是Network.Ping没判断出来,加了这个

 回到顶部
帅哥,在线噢!
z769036165
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:762 积分:5456 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/7/29 14:05:00 [显示全部帖子]

e.Connec ti,不加判断条件
直接这样修改都不行,我怀疑是web数据源与正常的sql数据源切换有问题

我设置当前数据源shujk  为web数据源,正常能连接
BeforeConnectOuterDataSource里只设置

e.C onnec tionStr ing = "Pr ovid er=SQ LOLEDB.1;Pa ssword=xxxx;P ersist Sec urity Info=True;U ser ID=sa;Initial C atalog=xxxx;Dat a Source=xxx x"

进去后数据库就没改过来还是原来的,反过来也是一样的
[此贴子已经被作者于2021/7/29 14:06:58编辑过]

 回到顶部
帅哥,在线噢!
z769036165
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:762 积分:5456 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2021/7/29 17:22:00 [显示全部帖子]

这个问题还是出现在切换上,如果菜单的数据源设置连接数据源A连接不上就会报错,切换就是没效果。

我现在关掉WEB数据源,菜单默认设置为web数据源,在BeforeConnectOuterDataSource设置当局域网IP可以连接通的时候切换成局域网连接
e. Connec tionStr ing = "Pr ovid er=SQ LOLEDB.XX” 的连接方式

For Each cn As Connection In Connections

    Output.Show("名称:" & cn.Name)
   
Output.Show("链接字符串:" & cn.ConnectionString
)
Next


但是按以上代码发现数据源已修改了,且局域网数据源是通的,就是报错,且连接不上。


如果2个数据源都能连接通的情况下就不报错,而且切换成功了

[此贴子已经被作者于2021/7/29 17:27:13编辑过]

 回到顶部