Fill

根据指定的SQL语句,从指定数据源的指定表加载数据,新的数据源和数据表可以和当前不同。
SQLTable和SQLQuery类型的Table,以及副本型的Table,可以通过本方法动态加载数据。

语法:

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方法让Table控件显示另一个表的数据。

我们也可以在设计窗口的时候,将窗口的类型设置为SQLTable或SQLQuery,但并不设置Select语句,而是在窗口的AfterLoad事件中,通过代码动态合成Select语句,然后再用Fill方法加载数据。

重要提示

其实Fill并不常用,只有需要从不同的表中加载数据时,才使用Fill语句,从同一个表中动态加载数据,应该使用LoadFilter和Load来实现。
 


本页地址:http://www.foxtable.com/webhelp/topics/1777.htm