以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 阿里云和局域网数据源连接 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143106) |
-- 作者:guosheng -- 发布时间:2019/11/13 17:48:00 -- 阿里云和局域网数据源连接 都是sqlserver数据库,有在同一个sqlserver中的几个(不是1个)数据库在局域网,有几个在阿里云。如果提前把所有数据库都提前连上,不在指定局域网的用户登陆系统,会有数据源不存在或连不上的报错。 该如何动态处理连接数据源啊?谢谢 |
-- 作者:有点蓝 -- 发布时间:2019/11/14 8:49:00 -- 参考:http://www.foxtable.com/webhelp/topics/0682.htm |
-- 作者:guosheng -- 发布时间:2019/11/14 10:02:00 -- 假设局域网中的sqlserver:IP是192.168.10.10,访问用户名是:abc 密码:abc;该局域网有多个数据库(库名:数据库A,数据库B,数据C……) 如果局域网无法访问,则不连接局域网的数据库,也不加载相应的表。该如何实现啊?谢谢 If Network.Ping("192.168.10.10",1000) = True …… End If |
-- 作者:有点蓝 -- 发布时间:2019/11/14 10:06:00 -- 本地建一个access数据库文件,放到项目文件夹里,里面的表结构和SqlServer的完全一样,可以没有数据。连接不到SqlServer时连接这个空的access数据库 If Network.Ping("192.168.1.100",1000) = False Then \'如果第一个IP无法接通 e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "access数据库文件名.mdb;Persist Security Info=False" End If End If |
-- 作者:guosheng -- 发布时间:2019/11/14 17:44:00 -- 数据源比较多,该怎么获取所有数据源的名称啊(然后循环判断e.name)? |
-- 作者:有点蓝 -- 发布时间:2019/11/15 8:39:00 -- 数据源名称应该是已知的 If e.Name = "数据源名称" Then xxxx elseIf e.Name = "数据源名称2" Then xxxx elseIf e.Name = "数据源名称3" Then ……
|
-- 作者:guosheng -- 发布时间:2019/11/15 10:55:00 -- 改成这样能行吗?(目前没在局域网中,没法测试) For Each cn As Connection In Connections (不知道连接数据源时,能不能获取Connections) If e.Name=cn.Name and Network.Ping("192.168.1.100",1000) = False e.C & e.ProjectPath & "access数据库文件名.mdb;Persist Security Info=False" endif next
|
-- 作者:有点蓝 -- 发布时间:2019/11/15 11:02:00 -- 只能使用6楼的方法。添加了多少个数据源,在开发的时候应该是已知的。 何况如果多个数据库的结构是不一样的,一般不能绑定到同一个access数据库的
|