Foxtable(狐表)用户栏目专家坐堂 → 怎样获取数据源名称的对应连接字符


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

主题:怎样获取数据源名称的对应连接字符

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


加好友 发短信
等级:二尾狐 帖子:507 积分:4743 威望:0 精华:0 注册:2020/5/7 13:05:00
怎样获取数据源名称的对应连接字符  发帖心情 Post By:2020/11/27 14:25:00 [只看该作者]

如题
[此贴子已经被作者于2020/11/27 14:30:09编辑过]

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


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


TryConnect

测试指定的链接字符串能否连通,如果能连通,则返回True,否则返回False。

语法:

TryConnect(ConnectionString,ErrMsg)

ConnectionString:要测试的链接字符串。
ErrMsg:一个可选参数,用于获取导致数据源无法连接的错误原因。

例如:

Dim s As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data\Northwind.mdb;Persist Security Info=False"
If 
Connections.TryConnect(s) = False Then
    MessageBox.Show("数据源无法连通!"
)
End If


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


加好友 发短信
等级:二尾狐 帖子:507 积分:4743 威望:0 精华:0 注册:2020/5/7 13:05:00
  发帖心情 Post By:2020/11/27 14:55:00 [只看该作者]

For Each cn As Connection In Connections
    msgbox(cn.name)
    Dim s As String = cn.ConnectionString
    If Connections.TryConnect(s) = False Then
        MessageBox.Show("数据源无法连通!")
        '怎样跳过连接不通的数据源
    End If
    MessageBox.Show("数据源连通!")
    msgbox("名称:" & cn.Name)
    msgbox("链接字符串:" & cn.ConnectionString)
Next

我这段代码放在BeforeConnectOuterDataSource运行项目时不见其执行,这是为什么

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


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

BeforeConnectOuterDataSource肯定用不了的,这个事件触发的时候数据源还不存在

只能判断数据库地址(access),或者数据库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


 回到顶部