Foxtable(狐表)用户栏目专家坐堂 → 数据源判断 怎么实现多个ip判断呢?


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

主题:数据源判断 怎么实现多个ip判断呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
数据源判断 怎么实现多个ip判断呢?  发帖心情 Post By:2022/1/14 16:25:00 [只看该作者]

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不通  就进入第三个本地数据库


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/14 16:29:00 [只看该作者]

就是是上面的判断方法

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)就是是上面的判断方法  发帖心情 Post By: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

可是为什么不能达到效果呢?应当是第一个不通 就第二个啥  第二个不通就第三个啥   可以为什么第一个不通   就直接弹出修改第一个的连接字符串了呢?

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/14 16:34:00 [只看该作者]

肯定第二个也不通

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)肯定第二个也不通  发帖心情 Post By:2022/1/14 16:57:00 [只看该作者]

第二个是通的  当第一个不通的时候  我手动修改弹出的字符ip 为第二个ip  就可以正常登录进系统    

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/14 17:12:00 [只看该作者]

打开命令窗口测试
msgbox(Network.Ping("192.168.0.56",1000) = True)

有些地址可能因为防火墙/路由的原因禁止ping的

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/1/14 18:12:00 [只看该作者]

这个判断的是链接数据源的名称,而不是判断通不通的问题,狐表执行的是允许多数据源机制,只要您添加了多数据源并添加了外部表,是一定要链接的,数据源链接不应当公开给所有用户,一定是高级管理员,否则,丢了用户名和密码,该数据源的数据库随时随地被人为破坏!

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(程兴刚)这个判断的是链接数据源的名称,而不...  发帖心情 Post By:2022/1/14 18:18:00 [只看该作者]

程老师 有没有比较好的解决方法或例子  谢谢!

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


加好友 发短信
等级:小狐 帖子:304 积分:2091 威望:0 精华:0 注册:2017/11/19 9:46:00
  发帖心情 Post By:2022/1/14 18:55:00 [只看该作者]

如果是远程的话,楼主这个方法当网络不好的时候启动时间会很长。之前我试过一个,启动时间10分钟,假死机状态,估计是等待数据源的反馈。
修改链接字符串这个等于让出数据库权限给了所有用户。只适用于你自己用。

我是这么搞的供你参考:
用C#写个简单的登录窗口,封装成DLL给foxtable程序在beforeopenproject事件中调用。
所有的登录验证都通过DLL程序用web访问服务器的服务,验证通过后服务器返回加密的链接字符串过来,解密后把字符串返回给foxtable主程序。

登录窗口内可以给出登录选项、服务器网址等内容。这样可以随时灵活切换服务器,不需要改代码。

加密字符串的逻辑做的复杂些,多加点盐,安全性也该也凑合了。

Foxtable自带的登录方式要求必须先连通数据源再验证用户名密码,不是很安全,也不够灵活。只适合开发人员经常陪着用户的场景。
[此贴子已经被作者于2022/1/14 18:58:16编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2022/1/14 20:21:00 [只看该作者]

对于我这种半调子程序员来说,只能算我蒙着了,其实foxtable也有禁止显示设置链接数据库方法的,当时我提出过这个问题,记得贺老师改进了的,有非开发者和非管理员是不会弹出的方法的!

 回到顶部
总数 12 1 2 下一页