Foxtable(狐表)用户栏目专家坐堂 → 我想在连接外部数据源的时候动态输入IP地址和用户名!(已有进一步建议,参见贴子:应该增加管理“外部数据源”的功能!)


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

主题:我想在连接外部数据源的时候动态输入IP地址和用户名!(已有进一步建议,参见贴子:应该增加管理“外部数据源”的功能!)

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


加好友 发短信
等级:童狐 帖子:243 积分:2370 威望:0 精华:1 注册:2008/8/31 22:25:00
  发帖心情 Post By:2008/9/17 12:14:00 [显示全部帖子]

我试了一下直接在BeforeConnectOuterDataSource事件中加入以下代码:
 e.name = "test"
 [e.C]
但目前系统提示e.name为只读.

如果能够按上述方式在BeforeConnectOuterDataSource事件中直接创建远程数据源连接就可以解决1楼的问题了.

[此贴子已经被作者于2008-9-17 12:16:20编辑过]

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


加好友 发短信
等级:童狐 帖子:243 积分:2370 威望:0 精华:1 注册:2008/8/31 22:25:00
  发帖心情 Post By:2008/9/17 12:40:00 [显示全部帖子]

我的思路是在系统中先开个内部表, 用以记录所有配置的远程连接数据源(NAME,IP,数据,USER,PWD),同时加一个"默认连接"标识字段, 系统初始化中BeforeConnectOuterDataSource事件中 取此内部表中"默认连接"标识字段为真的记录值动态建立数据源, 之后再按需要加载或创建外部表了,再加载用户登录窗口....

1. 可以实现数据源的灵活配置
2. 也解决了1楼的问题.


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


加好友 发短信
等级:童狐 帖子:243 积分:2370 威望:0 精华:1 注册:2008/8/31 22:25:00
  发帖心情 Post By:2008/9/17 12:45:00 [显示全部帖子]


以下是引用贺老六在2008-9-17 12:16:00的发言:

e.name表示正在连接的数据源,当然应该只读的。
每链接一个数据源,都会触发这个事件,e.name也不同。

 请问贺兄, 狐表目前应该可以实现同时多数据源连接吧.
(帮助中关于外部表的QueryBuilder/OuterTableBuilder/SQLCommand类都是可以指定数据源名称的.)

 BeforeConnectOuterDataSource事件中 E.NAME是指当前连接的数据名称, 但是使用外部数据源命令建立的数据源应该有一个静态的属性用以记录数据名称和连接字符串吧. 如果可在项目初始化事件中用代码创建多个数据源就可以实现一个客户端可以连接多个数据源,这是很有意义的.


[此贴子已经被作者于2008-9-17 12:58:18编辑过]

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


加好友 发短信
等级:童狐 帖子:243 积分:2370 威望:0 精华:1 注册:2008/8/31 22:25:00
  发帖心情 Post By:2008/9/17 12:55:00 [显示全部帖子]

以下是引用cpayinyuan在2008-9-17 12:45:00的发言:

肯定不行,这是因为系统打开项目的加载顺序问题,在执行BeforeConnectOuterDataSource事件的时候,还没有加载内部表(包括内部表的窗口),所以,内部表中的所有数据在连接外部数据源时都是无效的.所以,如果不太复杂的话,我还是强烈建议贺老师改一下项目加载的顺序,先加载内部表和内部表的窗口,然后再执行BeforeConnectOuterDataSource事件并连接外部数据源.这只是改变一下加载顺序,应该很容易实现,不知道实际上是不是这样?

 我觉得 应该是先连本地表,再连远程表了.


 回到顶部