以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  怎样获取数据源名称的对应连接字符  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=158639)

--  作者:fvcfox
--  发布时间:2020/11/27 14:25:00
--  怎样获取数据源名称的对应连接字符
如题
[此贴子已经被作者于2020/11/27 14:30:09编辑过]

--  作者:有点蓝
--  发布时间: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
--  发布时间: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运行项目时不见其执行,这是为什么

--  作者:有点蓝
--  发布时间: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