Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
在项目开发过程中,想实现:根据用户权限从外部数据库的指定数据表中加载部分字段,不知有什么好的思路?
1、曾用datatable的load方法,但是该方法只能动态加载不同的记录,但加载的是全部字段,不能控制部分字段的加载。
2、用datatable的fill方法, 该方法能够实现部分字段的加载和不同记录的加载,但是这种方法会改变datatable的字段结构,会造成表事件的出错。
请问高手是否在load方法中可以内置类似于fill的select 语句?
Fill
对于SQLTable和SQLQuery类型的Table,以及副本型的Table,可以通过Fill方法动态加载数据。
语法:
Fill(SelectString, IsQuery)
或者
Fill(SelectString, ConnectionName, IsQuery)
SelectString: Select语句
ConnectionName:
可选参数,指定数据源名称
IsQuery:
逻辑型,设为True,将生成SQLQuery型Table,否则生成SQLTable型Table.
示例
Tables("窗口1_Table1").Fill("Select * From {客户}","nwnd",True)
不管Table原来显示的是什么数据,执行上述代码后,Table将显示nwnd数据源中的客户表数据。
需要特别注意的是,如果只想取部分列生成SQLTable,那么必须包括主键列在内,例如:
Tables("窗口1_Table1").Fill("Select [_Identify],[客户],[数量],[单价] From {订单}",False)
这里假定订单表是内部数据表,内部数据表的主键列是_Identify,如果是外部表,请使用实际的主键列名称。
如果要生成SQLQuery,则没有这个限制:
Tables("窗口1_Table1").Fill("Select [_Identify],[客户],[数量],[单价] From {订单}",True)
只能用Fill。
另外定义外部表的时候,也可以指定字段的。