以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 设置BeforeConnectOuterDataSource代码后的一个问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=104997) |
-- 作者:andy-1024 -- 发布时间:2017/8/9 21:52:00 -- 设置BeforeConnectOuterDataSource代码后的一个问题 我有两套数据库,一个在本地,一个在阿里云上,想按照帮助文档中BeforeConnectOuterDataSource这一节第六个例子操作一下,让开发者手动设置连接字符串,但是把代码: If e.User.Type = UserTypeEnum.Developer
Then 加到项目事件BeforeConnectOuterDataSource后,保存项目退出,再以开发者身份登录系统后,只出现狐表的启动画面和进度条,然后就没有然后了,什么反应都没有了(我是点击项目在桌面的快捷方式进入系统的)。 而双击FoxTable程序启动狐表,然后再打开我的项目是可以的,但是有运行错误提示:“未将对象引用设置到对象的实例”,关闭两次错误提示后才能弹出用户登录界面,请问老师,这是怎么回事呢? |
-- 作者:有点甜 -- 发布时间:2017/8/9 22:14:00 -- 1、你升级到最新版foxtable了没有?
2、报错,是哪个事件报错? http://www.foxtable.com/webhelp/scr/1485.htm
|
-- 作者:andy-1024 -- 发布时间:2017/8/9 22:21:00 -- 我的已经是最新版本了
报错是BeforeConnectOuterDataSource事件
我是直接把帮助文档的代码复制到事件中去的。 |
-- 作者:andy-1024 -- 发布时间:2017/8/9 22:22:00 -- 如果把代码删掉后,点击我的项目在桌面的快捷方式,则会正常启动了 |
-- 作者:有点甜 -- 发布时间:2017/8/9 22:33:00 -- 你的用户表是外部数据源?你要先连上这个数据源,才能出现登陆窗口的。
If e.Name <> "Users" AndAlso e.User.Type = UserTypeEnum.Developer Then e.EditConnectionString() |
-- 作者:andy-1024 -- 发布时间:2017/8/10 23:19:00 -- 是的,老师,我是用外部表作为用户表,按照您的指点一切正常了。 现在我希望功能更进一步,如果是总经理和总管登录系统的话,则连接阿里云上的远程数据源,如果是其他用户登录的话,则连接店内的本地数据源。 但是还是有问题。 我的BeforeConnectOuterDataSource代码如下: If e.Name = "LocalUsers" Then e.C End If ’------------------如果没有下面的代码,则系统启动一切正常 ’以下用于从项目文件夹中的ip文件读取远程服务器IP地址 Dim IPAdd As String Dim ipFile As String = ProjectPath & "RemoteIP.txt" If Filesys.FileExists(ipFile) Then Dim ip As String = FileSys.ReadAllText(ipFile) IPAdd = ip End If ’以下判断,如果是总经理或总管登录,则先ping远程服务器,如果ping通,则连接远程数据源,如果不通,则连接本地数据源 If e.User.Group = "General Manager" Or e.User.Group = "Superviser" Then If Network.Ping(IPAdd,5000) Then If e.Name = "ChoiceData" Then e.ConnectionString = “远程数据源连接字符串” End If Else If e.Name = "LocalData" Then e.ConnectionString = “本地数据源连接字符串” End If End If Else If e.Name = "LocalData" Then ’如果不是总经理或者总管,则直接连接本地数据源 e.ConnectionString = “本地数据源连接字符串” End If End If 但是保存退出,点击项目的快捷方式重新启动项目后,依然是只有狐表启动画面,然后就什么都没有了。还是通过狐表可以打开项目,但是报错内容和昨天上面的是一模一样的。 这两天一直被这个问题困惑,用户表所在的外部数据源已经先于判断语句连接了,为啥还是有错误的? 另外,我还有一个疑问,如果项目中比如说有4个数据源,如果BeforeConnectOuterDataSource事件中不写代码,是不是项目启动后,这4个数据源都会被连接?比如说通过代码只连接其中两个,那另外两个会不会被连接上呢? 是在太困扰了,希望老师给予指点,谢谢。 [此贴子已经被作者于2017/8/10 23:21:59编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/8/11 0:04:00 -- 这样就比较麻烦了......因为你用的是外部数据源的用户表。必须等候数据源加载完毕,才会出现登陆窗口的......
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103342&skin=0
|