Foxtable(狐表)用户栏目专家坐堂 → 系统中应该增加一个用编码动态管理“外部数据源连接”的功能!(即增加一个外部数据源对象!)


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

主题:系统中应该增加一个用编码动态管理“外部数据源连接”的功能!(即增加一个外部数据源对象!)

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
系统中应该增加一个用编码动态管理“外部数据源连接”的功能!(即增加一个外部数据源对象!)  发帖心情 Post By:2008/9/18 11:58:00 [只看该作者]

    昨天就认真测试外部数据源的管理,今天又看了另一位老兄的例子,我终于明白问题在哪儿了.目前的外部数据源是在打开项目时自动加载的,而且在加载外部数据源时,还没有加载内部表(包括内部表的窗口),所以在项目事件BeforeConnectOuterDataSource中设置相关参数时窗口、表都不能用。尽管系统命令中有一个Syscmd.Project.ModifyOuterDataSource()命令,但这个命令是打开外部数据源管理窗口,虽然可以设置相关功能但使用很不方便!我认为系统中应该增加一个“外部数据源”对像,提供的属性包括:外部数据源名称,用户名,密码,IP地址,数据库名称等,提供的方法包括:连接外部数据源,断开外部数据源等。这样,用户就可以在事件中以编码的方式动态加载新的外部数据源,甚至卸载外部数据源(当然卸载外部数据源可能会造成意外后果,但这应由用户自己控制,还是应该有这个方法),这要比用Syscmd.Project.ModifyOuterDataSource()命令或菜单打开外部数据源管理窗口方便多了。如果这样改进,只需要增加一个新的对象,对系统的原有功能和系统启动没有任何影响,可能比昨天大家提的几个建议都要好(昨天提的建议包括增加独立于表的窗口、改变加载顺序、增加一个独立的编辑外部数据源设置文本的小程序等),建议贺老师认真考虑。

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

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


加好友 发短信
等级:超级版主 帖子:485 积分:2996 威望:0 精华:10 注册:2008/9/12 14:37:00
  发帖心情 Post By:2008/9/18 12:03:00 [只看该作者]

BeforeConnectOuterDataSource

这个事件是专业用户才用得着的,我们不需要研究它。
准备连接外部数据源的时候执行,可以在此修改连接字符串。

e参数属性:

Name:             外部数据源名称
User:             登录用户
ProjectFile:      项目文件名,含路径。
ProjectPath:      返回项目文件所在目录
ConnectionString: 返回或设置连接字符串。

有两点要注意:

FoxTable使用的数据提供程序是OLE DB .NET。
数据源最好是SQL SERVER 或者 ACCESS。

利用本事件,可以根据登录用户的不同,通过修改e参数的ConnectionString属性,链接到不同的后台数据库。


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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/9/18 12:10:00 [只看该作者]

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

BeforeConnectOuterDataSource

这个事件是专业用户才用得着的,我们不需要研究它。
准备连接外部数据源的时候执行,可以在此修改连接字符串。
e参数属性:

Name:             外部数据源名称
User:             登录用户
ProjectFile:      项目文件名,含路径。
ProjectPath:      返回项目文件所在目录
ConnectionString: 返回或设置连接字符串。
……………………

   
     贺老师,这个事件我知道,但这与我前面提的建议完全是两码事。我的意思不是怎么使用BeforeConnectOuterDataSource这个事件,设置进入项目时加载外部数据源的参数。我是建议增加一个对象来实现用编码的方式对外部数据源进行动态管理(增加的是一个对象,不是事件,就像窗口、按钮一样),目前的系统中是只要一打开项目就自动加载外部数据源,而一旦进入系统,在系统运行过程中只能通过菜单命令才能重新对外部数据源进行管理,还很不方便,对于一个设计好的系统采取这种方式就更不方便。我的意思是打开项目时不再自动加载所有的外部数据源(当然哪些要自动加载可以在外部数据源的属性中设置),而是增加一个管理外部数据源的对象,可以用编码的方式,对外部数据源的属性进行重新设置,并进行加载、断开的动态管理。这样,对系统原有的功能没有任何影响,只是增加一个对象,但这样对外部数据源的管理就要灵活方便了不知多少倍!
    贺老师,或许您对SQL server的功能不是非常看重,所以,功能不是非常灵活还总是出一些小错,但我认为,要设计一个正规的、数据量大的系统,对SQL server支持功能的强弱,是非常重要、非常关键的指标,所以我(可能还有很多潜在用户)对外部数据源的功能非常看重,还是希望您能高度重视!
[此贴子已经被作者于2008-9-18 13:08:55编辑过]

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


加好友 发短信
等级:童狐 帖子:243 积分:2370 威望:0 精华:1 注册:2008/8/31 22:25:00
  发帖心情 Post By:2008/9/18 12:38:00 [只看该作者]

 如果能加上,那就perfect.
 用代码随需创建/断开数据源,狐表支持远程数据源就很灵活方便了!
 
 支持楼主!


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

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
期待中!  发帖心情 Post By:2008/9/18 16:20:00 [只看该作者]

高度期待中!

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


加好友 发短信 好心情 一级勋章
等级:超级版主 帖子:715 积分:5564 威望:0 精华:1 注册:2008/8/31 20:45:00
  发帖心情 Post By:2008/9/18 16:39:00 [只看该作者]

建议楼主发贴时用默认文字颜色,说实在的,看你发的帖子眼很累。

 回到顶部