Foxtable(狐表)用户栏目专家坐堂 → 同一个数据源名称 有两个链接字符串 怎么实现先判断第一个 如果第一个链接不成功 就用第二个字符串链接呢?确保两个都不能链接的时候再弹出错误提示,如果有其中一个可以连接就不弹出错误提示


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

主题:同一个数据源名称 有两个链接字符串 怎么实现先判断第一个 如果第一个链接不成功 就用第二个字符串链接呢?确保两个都不能链接的时候再弹出错误提示,如果有其中一个可以连接就不弹出错误提示

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
同一个数据源名称 有两个链接字符串 怎么实现先判断第一个 如果第一个链接不成功 就用第二个字符串链接呢?确保两个都不能链接的时候再弹出错误提示,如果有其中一个可以连接就不弹出错误提示  发帖心情 Post By:2021/7/12 15:36:00 [只看该作者]

同一个数据源名称 有两个链接字符串  怎么实现先判断第一个  如果第一个链接不成功  就用第二个字符串链接呢?确保两个都不能链接的时候再弹出错误提示,如果有其中一个可以连接就不弹出错误提示

If e.name = "kj222" Then
     e.Connec tionS tring = "Pro vider=SQLO LEDB.1;Passw ord=kj222;Persist Sec urity Info=True;User ID=sa;Initial Cata log=BW_KJ222;Data Sour ce=DESKTOP-4HGMIGM\SQLEXPRESS"
    e.Connec tionS tring = "Pro vider=SQLO LEDB.1;Passw ord=kj222;Persist Sec urity Info=True;User ID=sa;Initial Cata log=BW_KJ222;Data Sour ce=WIN-RR3MKL7U9ON\SQLSERVER2008"
ElseIf e.name = "BW_HR" Then
    e.Connectio nString = "Pro vider=SQLO LEDB.1;Pass word=kj222;Persist Secur ity Info=True;User ID=sa;Init ial Cat alog=BW_HR;Data Sou r ce=DESKTOP-4HGMIGM\SQLEXPRESS"
    e.Connectio nString = "Pro vider=SQLO LEDB.1;Pass word=kj222;Persist Secur ity Info=True;User ID=sa;Init ial Cat alog=BW_HR;Data Sou r ce=WIN-RR3MKL7U9ON\SQLSERVER2008"
End If
[此贴子已经被作者于2021/7/12 15:41:09编辑过]

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


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/12 15:48:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/0682.htm

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

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)参考:http://www.foxtable.com/webh...  发帖心情 Post By:2021/7/12 15:53:00 [只看该作者]

看见过这个帮主内容  但是没有明白 怎么用法

我的连接语句里面不是ip
[此贴子已经被作者于2021/7/12 15:54:04编辑过]

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


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/12 16:15:00 [只看该作者]

机器名也可以。不过建议都改为使用IP吧,不然系统还得做多一次解析

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)机器名也可以。不过建议都改为使用IP...  发帖心情 Post By:2021/7/12 16:48:00 [只看该作者]

If e.Name = "kj222" Then
    If Network.Ping("DESKTOP-4HGMIGM\SQLEXPRESS",1000) = False  Then '如果第一个IP无法接通
        If Network.Ping("WIN-RR3MKL7U9ON\SQLSERVER2008",1000) = False  Then '如果第二个IP无法接通
            msgbox("出错")
        Else
            e.ConnectionString = e.ConnectionString.Replace("DESKTOP-4HGMIGM\SQLEXPRESS", "WIN-RR3MKL7U9ON\SQLSERVER2008")
        End If
    End If
ELSE If e.Name = "BW_HR" Then
    If Network.Ping("DESKTOP-4HGMIGM\SQLEXPRESS",1000) = False  Then '如果第一个IP无法接通
        If Network.Ping("WIN-RR3MKL7U9ON\SQLSERVER2008",1000) = False  Then '如果第二个IP无法接通
            msgbox("出错")
        Else
            e.ConnectionString = e.ConnectionString.Replace("DESKTOP-4HGMIGM\SQLEXPRESS", "WIN-RR3MKL7U9ON\SQLSERVER2008")
        End If
    End If
End If

老师  是这样么?下面的红色部分又该写在哪里呢?

If e.name = "kj222" Then
     e.Connec tionS tring = "Pro vider=SQLO LEDB.1;Passw ord=kj222;Persist Sec urity Info=True;User ID=sa;Initial Cata log=BW_KJ222;Data Sour ce=DESKTOP-4HGMIGM\SQLEXPRESS"
    e.Connec tionS tring = "Pro vider=SQLO LEDB.1;Passw ord=kj222;Persist Sec urity Info=True;User ID=sa;Initial Cata log=BW_KJ222;Data Sour ce=WIN-RR3MKL7U9ON\SQLSERVER2008"
ElseIf e.name = "BW_HR" Then
    e.Connectio nString = "Pro vider=SQLO LEDB.1;Pass word=kj222;Persist Secur ity Info=True;User ID=sa;Init ial Cat alog=BW_HR;Data Sou r ce=DESKTOP-4HGMIGM\SQLEXPRESS"
    e.Connectio nString = "Pro vider=SQLO LEDB.1;Pass word=kj222;Persist Secur ity Info=True;User ID=sa;Init ial Cat alog=BW_HR;Data Sou r ce=WIN-RR3MKL7U9ON\SQLSERVER2008"
END IF

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


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/12 16:56:00 [只看该作者]

第二段代码不需要了

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)第二段代码不需要了  发帖心情 Post By:2021/7/12 17:06:00 [只看该作者]


如下代码不要了?那我怎么定义账户和密码以及对应的数据库呢?因为服务器名称不同对应的也密码不同
If e.name = "kj222" Then
     e.Connec tionS tring = "Pro vider=SQLO LEDB.1;Passw ord=kj222kj222;Persist Sec urity Info=True;User ID=sa;Initial Cata log=BW_KJ222;Data Sour ce=DESKTOP-4HGMIGM\SQLEXPRESS"
    e.Connec tionS tring = "Pro vider=SQLO LEDB.1;Passw ord=kj222;Persist Sec urity Info=True;User ID=sa;Initial Cata log=BW_KJ222;Data Sour ce=WIN-RR3MKL7U9ON\SQLSERVER2008"
ElseIf e.name = "BW_HR" Then
    e.Connectio nString = "Pro vider=SQLO LEDB.1;Pass word=kj222kj222;Persist Secur ity Info=True;User ID=sa;Init ial Cat alog=BW_HR;Data Sou r ce=DESKTOP-4HGMIGM\SQLEXPRESS"
    e.Connectio nString = "Pro vider=SQLO LEDB.1;Pass word=kj222;Persist Secur ity Info=True;User ID=sa;Init ial Cat alog=BW_HR;Data Sou r ce=WIN-RR3MKL7U9ON\SQLSERVER2008"
END IF
[此贴子已经被作者于2021/7/12 17:18:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/12 17:25:00 [只看该作者]

If e.Name = "kj222" Then
    If Network.Ping("DESKTOP-4HGMIGM\SQLEXPRESS",1000) = False  Then '如果第一个IP无法接通
        If Network.Ping("WIN-RR3MKL7U9ON\SQLSERVER2008",1000) = False  Then '如果第二个IP无法接通
            msgbox("出错")
        Else
           e.Connec tionS tring = "Pro vider=SQLO LEDB.1;Passw ord=kj222;Persist Sec urity Info=True;User ID=sa;Initial Cata log=BW_KJ222;Data Sour ce=WIN-RR3MKL7U9ON\SQLSERVER2008"
        End If
    End If
ELSE If e.Name = "BW_HR" Then
    If Network.Ping("DESKTOP-4HGMIGM\SQLEXPRESS",1000) = False  Then '如果第一个IP无法接通
        If Network.Ping("WIN-RR3MKL7U9ON\SQLSERVER2008",1000) = False  Then '如果第二个IP无法接通
            msgbox("出错")
        Else
           e.Connectio nString = "Pro vider=SQLO LEDB.1;Pass word=kj222;Persist Secur ity Info=True;User ID=sa;Init ial Cat alog=BW_HR;Data Sou r ce=WIN-RR3MKL7U9ON\SQLSERVER2008"
        End If
    End If
End If

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)If e.Name = "kj222" Then  &nb...  发帖心情 Post By:2021/7/12 17:50:00 [只看该作者]

还是没有实现DESKTOP-4HGMIGM\SQLEXPRESS不通的时候,不要提示错误  直接跳到WIN-RR3MKL7U9ON\SQLSERVER2008  当WIN-RR3MKL7U9ON\SQLSERVER2008这个都链接不上的时候  再提示错误

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/12 20:10:00 [只看该作者]

代码就是这个逻辑。不行的话就使用IP吧

 回到顶部