Foxtable(狐表)用户栏目专家坐堂 → SQL的连接多路选择


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

主题:SQL的连接多路选择

帅哥哟,离线,有人找我吗?
yang1972
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1122 威望:0 精华:0 注册:2015/7/6 15:46:00
SQL的连接多路选择  发帖心情 Post By:2016/11/10 21:58:00 [只看该作者]

版主好:我用SQL 数据库作数据源,连接数据库服务器工作的 有  外网和局域网电脑,FOXTABLE 怎样设置,自动检测与数据库连接速度,然后用户选择最快的连接方式。进行登陆工作。

是打开项目时先打开一个选择连接发式的窗口,窗口能够自动检测连接数据库的速度。
(ttp://www.foxtable.com/webhelp/scr/0682.htm)这个链接打不开。



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/10 22:00:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
yang1972
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1122 威望:0 精华:0 注册:2015/7/6 15:46:00
  发帖心情 Post By:2016/11/10 22:49:00 [只看该作者]

我使用这个方案:如果第二个IP还不行,能不能再设置第三个IP?


假定有两个IP地址(也可能是两个服务器),分别是192.168.1.100和119.75.217.56,默认使用第一个IP地址,如果第一个IP地址无法接通,则自动切换到第二个IP地址。
要实现这个功能很简单,首先在设置数据源的时候,使用第一个IP地址(192.168.1.100)设置,然后在BeforeConnectOuterDataSource事件中设置如下代码:

If e.Name = "数据源名称" Then
    If Network.Ping("192.168.1.100",1000) = False  Then '如果第一个IP无法接通
        e.ConnectionString = e.ConnectionString.Replace("192.168.1.100""119.75.217.56"
    End If

End
 If


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/10 22:53:00 [只看该作者]

多少个都可以,循环所有ip,逐一判断

 回到顶部
帅哥哟,离线,有人找我吗?
yang1972
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1122 威望:0 精华:0 注册:2015/7/6 15:46:00
  发帖心情 Post By:2016/11/11 7:10:00 [只看该作者]

怎么循环所有ip,代码怎么写啊,帮我写个好吗?谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/11 8:37:00 [只看该作者]

If e.Name = "数据源名称" Then
    Dim ips() As String = { "192.168.0.1","192.168.0.2","192.168.0.3" }
    For Each ip As String In ips
        If Network.Ping(ip,1000) Then '如果IP接通
            e.ConnectionString = e.ConnectionString.Replace("192.168.1.100", ip)
            Exit For
        End If
    Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
yang1972
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1122 威望:0 精华:0 注册:2015/7/6 15:46:00
  发帖心情 Post By:2016/11/11 10:27:00 [只看该作者]

If e.Name = "spxt-001" Then
    Dim ips() As String = { "218.22.183.172,3433","173.31.216.67,3433","192.168.1.21,3433" }
    For Each ip As String In ips
        If Network.Ping(ip,1000) Then '如果IP接通
            e.ConnectionString = e.ConnectionString.Replace("192.168.1.21,3433", ip)
            Exit For
        End If
    Next
End If

我这个有什么错误吗,系统打不开

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/11 10:36:00 [只看该作者]

If e.Name = "spxt-001" Then
    Dim ips() As String = { "218.22.183.172","173.31.216.67","192.168.1.21" }
    For Each ip As String In ips
        If Network.Ping(ip) Then '如果IP接通
            e.ConnectionString = e.ConnectionString.Replace("192.168.1.21", ip)
            Exit For
        End If
    Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
yang1972
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:92 积分:1122 威望:0 精华:0 注册:2015/7/6 15:46:00
  发帖心情 Post By:2016/11/11 10:56:00 [只看该作者]

不行啊,数据源设置的IP未能连接时 ,代码未起到作用检测自动更换作用,连接不到数据库
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20161111105430.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/11 11:29:00 [只看该作者]

测试没有问题。

更改后,在9楼图片的数据源管理里看到的仍然还是旧的数据源设置,但是实际连接的是新的数据源了

所以要保证不同数据库的表结构是一致的

 回到顶部
总数 12 1 2 下一页