以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数据源判断 怎么实现多个ip判断呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174429) |
-- 作者:cnsjroom -- 发布时间:2022/1/14 16:25:00 -- 数据源判断 怎么实现多个ip判断呢? If e.name = "电子审批台账" Then If Network.Ping("83.243.52.7",1000) = True Then e.C Else If Network.Ping("192.168.0.56",1000) = True Then e.C Else e.C & e.ProjectPath & "\\Attachments\\2021.mdb;Persist Security Info=False" End If End If 当前代码如上,只要第一个ip不通 就直接弹出请修改连接字符串rovider=SQLOLEDB.1;Password=Aa123456;Persist Security Info=True;User ID=sa;Initial Catalog=网安综合业务;Data Source=83.243.52.7了 麻烦老师帮忙修正一下 如果第一个ip不通 就进入第二个ip 如果第二个ip不通 就进入第三个本地数据库 |
-- 作者:有点蓝 -- 发布时间:2022/1/14 16:29:00 -- 就是是上面的判断方法 |
-- 作者:cnsjroom -- 发布时间:2022/1/14 16:33:00 -- 回复:(有点蓝)就是是上面的判断方法 If e.name = "电子审批台账" Then If Network.Ping("83.243.52.7",1000) = True Then e.Conn ection String = "Provider=SQLOLEDB.1;Password=Aa123456;Persist Security Info=True;User ID=sa;Initial Catalog=网安综合业务;Data Source=83.243.52.7" Else If Network.Ping("192.168.0.56",1000) = True Then e.Conn ection String = "Provider=SQLOLEDB.1;Password=Aa123456;Persist Security Info=True;User ID=sa;Initial Catalog=网安综合业务;Data Source=192.168.0.56" Else e.Conn ectio nString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "\\Attachments\\陈正海2021.mdb;Persist Security Info=False" End If End If 可是为什么不能达到效果呢?应当是第一个不通 就第二个啥 第二个不通就第三个啥 可以为什么第一个不通 就直接弹出修改第一个的连接字符串了呢?
|
-- 作者:有点蓝 -- 发布时间:2022/1/14 16:34:00 -- 肯定第二个也不通 |
-- 作者:cnsjroom -- 发布时间:2022/1/14 16:57:00 -- 回复:(有点蓝)肯定第二个也不通 第二个是通的 当第一个不通的时候 我手动修改弹出的字符ip 为第二个ip 就可以正常登录进系统 |
-- 作者:有点蓝 -- 发布时间:2022/1/14 17:12:00 -- 打开命令窗口测试 msgbox(Network.Ping("192.168.0.56",1000) = True) 有些地址可能因为防火墙/路由的原因禁止ping的
|
-- 作者:程兴刚 -- 发布时间:2022/1/14 18:12:00 -- 这个判断的是链接数据源的名称,而不是判断通不通的问题,狐表执行的是允许多数据源机制,只要您添加了多数据源并添加了外部表,是一定要链接的,数据源链接不应当公开给所有用户,一定是高级管理员,否则,丢了用户名和密码,该数据源的数据库随时随地被人为破坏! |
-- 作者:cnsjroom -- 发布时间:2022/1/14 18:18:00 -- 回复:(程兴刚)这个判断的是链接数据源的名称,而不... 程老师 有没有比较好的解决方法或例子 谢谢! |
-- 作者:lgzhao -- 发布时间:2022/1/14 18:55:00 -- 如果是远程的话,楼主这个方法当网络不好的时候启动时间会很长。之前我试过一个,启动时间10分钟,假死机状态,估计是等待数据源的反馈。 修改链接字符串这个等于让出数据库权限给了所有用户。只适用于你自己用。 我是这么搞的供你参考: 用C#写个简单的登录窗口,封装成DLL给foxtable程序在beforeopenproject事件中调用。 所有的登录验证都通过DLL程序用web访问服务器的服务,验证通过后服务器返回加密的链接字符串过来,解密后把字符串返回给foxtable主程序。 登录窗口内可以给出登录选项、服务器网址等内容。这样可以随时灵活切换服务器,不需要改代码。 加密字符串的逻辑做的复杂些,多加点盐,安全性也该也凑合了。 Foxtable自带的登录方式要求必须先连通数据源再验证用户名密码,不是很安全,也不够灵活。只适合开发人员经常陪着用户的场景。
[此贴子已经被作者于2022/1/14 18:58:16编辑过]
|
-- 作者:程兴刚 -- 发布时间:2022/1/14 20:21:00 -- 对于我这种半调子程序员来说,只能算我蒙着了,其实foxtable也有禁止显示设置链接数据库方法的,当时我提出过这个问题,记得贺老师改进了的,有非开发者和非管理员是不会弹出的方法的! |