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来实现。