RefsOf的定义为:RefsOf(Exp,UpLevel),其中Exp是一个任意的计算表达式,UpLevel是上几级,1表示上一级,2表示上两级。RefsOf的含义是,使用指定的上级结果集计算EXP表达式。可能这样说会很抽象,举几个例子:
例如:RefsOf(["学号"],1)表示上级结果集的学号字段,假定存在一个函数SQLTest,其定义为
Function SQLTest();
begin
return ["学号"];
end;
RefsOf(SQLTest(),1)同样访问的是上级结果集的学号字段。在这里,这样重复地说明只是为了告诉读者,在RefsOf中的第一个参数中的计算,无论是直接访问结果集(如访问字段,ThisRow等等),还是间接地访问(例如通过函数),访问的结果集均是指定的上层结果集的内容,够拗口吧。
之前的例子我们可以修改成如下代码:
R:=select *,Select ["课程时间"],["缺课"] from D where ["学号"]=RefsOf(["学号"],1) and ["缺课"]="Yes" end as "出勤记录" from B end;