以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  能否在运行时才加入外部表?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=502)

--  作者:fangling
--  发布时间:2008/9/15 11:00:00
--  能否在运行时才加入外部表?

foxtable好像只通过菜单添加外部数据表,不能通过代码在运行时加入,如果我的SQL数据库有上百个表,也必须事先在foxtable中用菜单全部加入,能不能在程序运行时,我需要哪个表再加入哪个表,不需要时就可以删除,这样不仅方便还可以降低内存占用?


--  作者:cpayinyuan
--  发布时间:2008/9/15 11:09:00
--  
以下是引用fangling在2008-9-15 11:00:00的发言:

foxtable好像只通过菜单添加外部数据表,不能通过代码在运行时加入,如果我的SQL数据库有上百个表,也必须事先在foxtable中用菜单全部加入,能不能在程序运行时,我需要哪个表再加入哪个表,不需要时就可以删除,这样不仅方便还可以降低内存占用?

有同感!我也没有看到帮助中有自动加载的相关命令!个人认为,目前的foxtable对外部数据表的支持还是很弱的,主要问题一是有些操作不方便或功能不完善(例如你提的加载的问题以及新建表的功能),有些地方的运行效率不高(可能现在已经有很大的改善了),还有些地方对SQl server的操作会提示出错.可能是狐表的重点还是内部数据表吧,但我认为既然FOX支持外部数据源,就应该提供很强/很完善的支持!适应各种层次的用户!

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

--  作者:kylin
--  发布时间:2008/9/15 11:39:00
--  
创建临时表和加载,具体参见帮助说明,基本可以达到楼主的需求。给两个图片供参考。

公测版需要大家的试用发表建言,但带着“先见”性的思想确实无法客观地了解一个新事物,不要轻言不可以。
图片点击可在新窗口打开查看此主题相关图片如下:tp1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:tp2.jpg
图片点击可在新窗口打开查看

--  作者:lxl
--  发布时间:2008/9/15 12:00:00
--  

临时表加载不了外部数据表。
加载外部数据表,还有cpayinyuan提到的新建表,删除表一般都是设计者的事情。
用代码加载新的外部数据表能实现,但意义不大。因为加载了外部数据,你还要考虑增加表达式列,增加窗口等问题,否则就是单单一张表。
不对外部数据表进行处理的话,直接用QueryBuilder生成查询就行了,完全能实现想要什么表就有什么表


--  作者:cpayinyuan
--  发布时间:2008/9/15 12:18:00
--  
以下是引用lxl在2008-9-15 12:00:00的发言:

临时表加载不了外部数据表。
加载外部数据表,还有cpayinyuan提到的新建表,删除表一般都是设计者的事情。
用代码加载新的外部数据表能实现,但意义不大。因为加载了外部数据,你还要考虑增加表达式列,增加窗口等问题,否则就是单单一张表。
不对外部数据表进行处理的话,直接用QueryBuilder生成查询就行了,完全能实现想要什么表就有什么表

即使加载外部数据表是设计者的事,但是,如楼主所说,如果一个项目有几百个表,就只能在进入项目时一次性加载,好像不是一个好办法啊!再者,一般情况下,既然使用外部数据表,肯定是要对外部表进行编辑写数据的,只有查询恐怕是不行的啦!所以,建议还是应该考虑动态加载外部数据表或者卸载外部数据表的功能.


--  作者:lxl
--  发布时间:2008/9/15 12:56:00
--  

恩,说的有道理

不过外部数据表比较多的时候,可以用项目事件BeforeLoadOuterTable来修改Select语句
这样不但能动态加载外部数据表,还能保存外部数据表的窗口,表视图,表达式列.


--  作者:贺老六
--  发布时间:2008/9/15 14:41:00
--  
这个建议我会考虑,准备提供OuterTableBuilder类
[此贴子已经被作者于2008-9-15 14:40:55编辑过]

--  作者:fangling
--  发布时间:2008/9/15 14:48:00
--  

        我想foxtable把表分成了5种类型,可能是处理方式不一样吧?我理解datatable对象就是内存中的表结构,他一方面从foxtable文件中读取数据,一方面从外部数据文件提取数据,一旦数据读入到datatable对象后应该没有多大差别,不同的只是保存更新方式不一样,建议还是应该考虑在datatables集合中增加add和delete两个方法,凡是集合都应该有这两个方法的。
     以上只是自己的猜想,不一定正确。


--  作者:贺老六
--  发布时间:2008/9/15 14:51:00
--  
delete方法是有的,凡是通过代码创建的表,都可以用delete删除。
--  作者:eric803
--  发布时间:2008/9/16 9:08:00
--  
以下是引用贺老六在2008-9-15 14:41:00的发言:
这个建议我会考虑,准备提供OuterTableBuilder类
[此贴子已经被作者于2008-9-15 14:40:55编辑过]


我想还应考虑 OuterTableQueryBuilder类
另外我觉行既然是查询表,就不应该只限制从单个表中创建查询表,建议在QueryBuilder类支持 SQL存储过程的使用.

期待!
[此贴子已经被作者于2008-9-16 9:13:49编辑过]