以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 1秒内判断内网通还是外网通并且自动设置数据源 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71315) |
-- 作者:supwork -- 发布时间:2015/7/9 10:32:00 -- 1秒内判断内网通还是外网通并且自动设置数据源 \'解析文件 catch ex As Exception End try If e.name = "IBMDMAIN" Then Else If e.name = "IBMDMAIN" Then If e.name = "IBMDLOGO" Then End If
本方案关键点: 1在服务器制作一个test网页,网页内容为FT两字。 假设该网页能打开就表示服务器能正常使用,该网页能打开,而数据库刚好出现问题不能登陆的可能性比较少就不考虑了。 2在项目目录下制作 一个123.txt的iP地址配置文件。配置连接字符串可使用加密字符串。顺序本例为:内网主连接串,内网LOG连接串,外网主连接串,外网LOG连接串 。 3在路由器上要作8008等端口映射 4以上代码放在 BeforeConnectOuterDataSource 事件中。
这样程序在内网使用,就自动使用内网IP,在外见多 使用就自动使用外网IP,无需人工干预。 二连接配置字符串,由管理员制作发,分发给所有人放项目文件夹下面。加密存储,不暴露数据库之关键信息,提高数据安全。
遗憾的是没有做出多账套登陆,按此方法如果要作多账套登陆,我想到的办法是另做一个批理,自动改变配置文件123.txt的内容,从而达到开启程序自动登陆指定的数据库系统。 |
-- 作者:大红袍 -- 发布时间:2015/7/9 10:35:00 -- 多套账登陆?已经告诉过你思路了,打开项目两次就行。
第一次打开,显示选择窗口;选择以后,重新打开项目;在BeforeConnectOuterDataSource事件设置选择的数据库字符串。 |
-- 作者:supwork -- 发布时间:2015/7/9 10:49:00 -- 打开 项目两次的确不想采用。哪有这样的
建议官方修正 一下程序
目前官方程序是 一打开 就试图连接 程序设计时 设计的数据源 若可连通就直接连,开始登陆了 (此设计思路官方已放弃 多账套功能了)
如果不能连通,则系统弹出 数据源连接字符串设计窗口,并且能保存设置。 注意一、这个地方的设置可以修改菜单中显示的数据源字符串了。而在BeforeConnectOuterDataSource中动态改变字符串确改写不了菜单中的数据源设置。 注意二、官方自己提供的数据源连接判断耗时太多,而我们自己写的判断数据源连接与否均可以在1秒内完成,(当然方法不同本一楼的,本一楼是一种替代方法)。官方的当数据源不能连接的判断时间过长,导致出现问题时登陆时间太长。
其实官方稍改动一下:
程序运行之初,不加载任何数据源,只作必要准备工作。 以最快的速度到达登陆窗口,在登陆窗口允许设置数据源连接字符串,并保存到菜单栏中的字符串中,保证系统一致性。
这样可提高登陆效率,可以做出方便的多账套模式。(当前方案如果,后面改变了账套,则前面的加载连接都是没用的耗时而已。
希望官方优化一下系统登陆机制,数据库设置机制,直接点。 [此贴子已经被作者于2015/7/9 10:50:16编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/7/9 10:56:00 -- 打开两次有什么有什么问题,不想重新打开就看动态数据源的例子。 |
-- 作者:supwork -- 发布时间:2015/7/9 11:07:00 -- 如何打开两次呢 搞不好就死循环了
|
-- 作者:大红袍 -- 发布时间:2015/7/9 11:13:00 -- 传递参数打开
Syscmd.Project.Open(ProjectFile,"参数1","参数2")
获取参数值
OpenFileArgs(0) OpenFileArgs(1)
|