以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 局域网与外部网络访问数据库切换链接问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170487) |
-- 作者:z769036165 -- 发布时间:2021/7/28 11:13:00 -- 局域网与外部网络访问数据库切换链接问题 需要实现,在局域网访问时候数据库链接使用内部局域网IP访问,在出差外网访问的时候,切换访问web数据源访问,在BeforeConnectOuterDataSource 设置以下代码,结果没作用 默认设置的数据库链接是采用的局域网内的连接,目前是判断这个链接不上,就换成这个WEB数据源访问 If TryConnectHost("192.168.3.10") = False Then If Network.Ping("192.168.3.10",1000) = False Then \'如果第一个IP无法接通 Select Case e.Name Case "shujk" Dim sb As New StringBuilder sb.AppendLine("http://222.168.xxx.xxx:8000/DataServer.htm") sb.AppendLine("-FormData-") sb.AppendLine("UserName:xxxxxx") sb.AppendLine("Password:xxxxxxxxxxx") e.ConnectionString = sb.ToString() End If End If
|
-- 作者:有点蓝 -- 发布时间:2021/7/28 11:29:00 -- 提示什么错误,新建一个项目,直接连接这个web数据源有没有问题? If TryConnectHost("192.168.3.10") = False Then msgbox(1) If Network.Ping("192.168.3.10",1000) = False Then \'如果第一个IP无法接通 msgbox(e.Name) Select Case e.Name Case "shujk" Dim sb As New StringBuilder sb.AppendLine("http://222.168.xxx.xxx:8000/DataServer.htm") sb.AppendLine("-FormData-") sb.AppendLine("UserName:xxxxxx") sb.AppendLine("Password:xxxxxxxxxxx") e.ConnectionString = sb.ToString() msgbox(e.ConnectionString) End If End If |
-- 作者:z769036165 -- 发布时间:2021/7/28 18:16:00 -- --------------------------- 错误 --------------------------- 创建外部连接"shujk"失败,请联系管理员或开发者,重新设置数据链接字符串! --------------------------- 确定 --------------------------- 直接显示这个没弹出内容
|
-- 作者:有点蓝 -- 发布时间:2021/7/29 8:37:00 -- 新建一个项目,直接连接这个web数据源有没有问题? |
-- 作者:z769036165 -- 发布时间:2021/7/29 11:10:00 -- 直接连接没有问题,现在好像问题在BeforeConnectOuterDataSource这个地方,没有先做判断,而是先进行了局域网的数据库连接,然后连接不上局域网数据库报错,报错后才出现msgbox(1)、msgbox(e.Name)弹窗 |
-- 作者:有点蓝 -- 发布时间:2021/7/29 11:14:00 -- 是不是设置了多个数据源? 去掉这个判断试试:If TryConnectHost("192.168.3.10") = False Then
|
-- 作者:z769036165 -- 发布时间:2021/7/29 11:20:00 -- If TryConnectHost("192.168.3.10") = False Then msgbox(1) If Network.Ping("192.168.3.10",1000) = False Then \'如果第一个IP无法接通 msgbox(e.Name) Select Case e.Name Case "shujk" Dim sb As New StringBuilder ..... Case "另外一个" ...... msgbox(e.ConnectionString) End If End If 有2个,另外一个也包在里面了,之前If TryConnectHost("192.168.3.10") = False Then没有加的,就是不行,所以以为是Network.Ping没判断出来,加了这个
|
-- 作者:有点蓝 -- 发布时间:2021/7/29 11:35:00 -- 换种方式判断:http://www.foxtable.com/webhelp/topics/1944.htm Dim ErrMsg As String If Connections.TryConnect(e.ConnectionString,ErrMsg) = False Then Select Case e.Name Case "shujk" Dim sb As New StringBuilder ..... Case "另外一个" ...... |
-- 作者:z769036165 -- 发布时间:2021/7/29 14:05:00 -- e.Connec ti,不加判断条件 直接这样修改都不行,我怀疑是web数据源与正常的sql数据源切换有问题 我设置当前数据源shujk 为web数据源,正常能连接 在BeforeConnectOuterDataSource里只设置 e.C onnec tionStr ing = "Pr ovid er=SQ LOLEDB.1;Pa ssword=xxxx;P ersist Sec urity Info=True;U ser ID=sa;Initial C atalog=xxxx;Dat a Source=xxx x" 进去后数据库就没改过来还是原来的,反过来也是一样的
[此贴子已经被作者于2021/7/29 14:06:58编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/7/29 14:09:00 -- 肯定是改了的,只不过这个代码并不会影响菜单里原数据源的设置。直接在数据源里是看不出来的。 我测试改为web数据源是可以的。或者做个例子发过来测试
|