以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 怎样用代码新建表,以实现真正的动态加载表? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=4630) |
-- 作者:cpayinyuan -- 发布时间:2009/10/15 12:04:00 -- 怎样用代码新建表,以实现真正的动态加载表? 如题,记不清狐表中有无此功能了,请教一下 [此贴子已经被作者于2009-10-15 17:07:31编辑过]
|
-- 作者:mr725 -- 发布时间:2009/10/15 12:07:00 -- 我记得只能建立临时表 |
-- 作者:cpayinyuan -- 发布时间:2009/10/15 12:25:00 -- 我想要实现的功能是,在打开项目的时候,项目中没有表(或有很少表),,在使用的过程中,根据需要,用代码新建一些空表(指定表名的内部表,反正是空表,表结构是缺省的也无所谓,),然后再用DataTable 的Fill方法加载数据. 之所以有这样的需求,是因为经测试,狐表项目中表越多打开项目越慢,当有几十个表时,即使全部是内部表,即使不加载任何数据,也需要几分钟的时间,所以,我想在打开项目时打开非常少的表,在项目运行过程中,根据需要,再动态增加表,并利用DataTable 的fill方法动态加载数据. 补充: 用系统命令Syscmd.Table.AddDataTable()不行,这个系统命令需要交互,我希望用代码直接指定表名生成内部数据表,用DataTableBuilder也不行,因为它只能生成临时表,临时表不能编辑和保存数据. 由于新建的表只需要指定表名即可,不需要指定表结构,我想这个应该不难解决吧? 希望贺老师想个办法! [此贴子已经被作者于2009-10-15 12:52:25编辑过]
|
-- 作者:cpayinyuan -- 发布时间:2009/10/15 12:53:00 -- 以下是引用cpayinyuan在2009-10-15 12:25:00的发言:
我想要实现的功能是,在打开项目的时候,项目中没有表(或有很少表),,在使用的过程中,根据需要,用代码新建一些空表(指定表名的内部表,反正是空表,表结构是缺省的也无所谓,),然后再用DataTable 的Fill方法加载数据. 之所以有这样的需求,是因为经测试,狐表项目中表越多打开项目越慢,当有几十个表时,即使全部是内部表,即使不加载任何数据,也需要几分钟的时间,所以,我想在打开项目时打开非常少的表,在项目运行过程中,根据需要,再动态增加表,并利用DataTable 的fill方法动态加载数据. 补充: 用系统命令Syscmd.Table.AddDataTable()不行,这个系统命令需要交互,我希望用代码直接指定表名生成内部数据表,用DataTableBuilder也不行,因为它只能生成临时表,临时表不能编辑和保存数据. 由于新建的表只需要指定表名即可,不需要指定表结构,我想这个应该不难解决吧? 希望贺老师想个办法! [此贴子已经被作者于2009-10-15 12:52:25编辑过] 希望贺老师想想办法! |
-- 作者:狐狸爸爸 -- 发布时间:2009/10/15 12:54:00 -- 用外部数据源,动态加载。 |
-- 作者:cpayinyuan -- 发布时间:2009/10/15 13:08:00 -- 以下是引用狐狸爸爸在2009-10-15 12:54:00的发言: 我现在用的就是外部数据源,而且是动态加载。没用的,解决不了打开项目太慢的问题。用外部数据源,动态加载。 现在问题的关键是,在打开项目的时候,即使全部加载空表,当表较多时,打开项目的速度也会非常慢,慢得无法忍受。因为在一个项目中有很多个功能可能同时使用,多个表也可能同时使用,所以,在项目中同一时间需要使用的表可能很多。项目中需要同时共存多个表与打开项目时的速度,这两者是矛盾的。解决这个矛盾的最好途径,就是在打开项目时打开较少的表,其他的表在项目运行过程中动态添加,再动态加载! 因为现在DataTable有了Fill方法,所以,只要FoxTable提供一个用代码动态建立内部数据表的功能,就可以利用Fill方法加载任意表的数据,所有的问题都会很容易解决了! 总之,我认为,DataTable有了Fill方法,如果不能用代码动态建立和删除内部数据表,动去加载表的作用就受到很大的限制;如果DataTable的Fill方法与代码动态建立和删除内部数据表相配合,就会威力无穷!实现真正的动态加载表! [此贴子已经被作者于2009-10-15 13:56:12编辑过]
|
-- 作者:mr725 -- 发布时间:2009/10/15 14:31:00 -- 查阅任何一款软件的Sql数据库,你会发现,软件所对应的数据库中,至少有70%或之上,是空表。 因此在数据库中先建好需要的空表,不用事先定义好这些空表(即项目中事先没有这些空表),需要时用OuterTableBuilder编码生成外部数据表,再操作。应该和你的要求一致。 |
-- 作者:cpayinyuan -- 发布时间:2009/10/15 14:42:00 -- 以下是引用mr725在2009-10-15 14:31:00的发言:
查阅任何一款软件的Sql数据库,你会发现,软件所对应的数据库中,至少有70%或之上,是空表。 因此在数据库中先建好需要的空表,不用事先定义好这些空表(即项目中事先没有这些空表),需要时用OuterTableBuilder编码生成外部数据表,再操作。应该和你的要求一致。 用OuterTableBuilder好像可以!我试试,谢谢老兄! |
-- 作者:cpayinyuan -- 发布时间:2009/10/15 16:11:00 -- 以下是引用mr725在2009-10-15 14:31:00的发言:
查阅任何一款软件的Sql数据库,你会发现,软件所对应的数据库中,至少有70%或之上,是空表。 因此在数据库中先建好需要的空表,不用事先定义好这些空表(即项目中事先没有这些空表),需要时用OuterTableBuilder编码生成外部数据表,再操作。应该和你的要求一致。 我认真试过了,OuterTableBuilder的确可以动态生成外部表,但是,速度比DataTable的Fill慢得太多了(差不多2-3倍吧). [此贴子已经被作者于2009-10-15 16:16:21编辑过]
|
-- 作者:cpayinyuan -- 发布时间:2009/10/15 17:03:00 -- 希望贺老师关注一下! |