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