在处理二维数据结构的时候,ThisRow同样是有用的,我们使用update的时候,由于需要使用set [FieldName]=Value的模式,当字段特别多的时候,使用起来就很麻烦,这个时候,ThisRow就可以起到不错的效果,我们是否还记得在本书最初关于二维数组就是一维的一维的论述呢?
假定R是包括许多门成绩的汇总表,我们已经有结果集DATA内容格式为array("学号":"01","英语成绩":80,"语文成绩":90.....),这个DATA包括R结果集的每一列的信息,现在我们要将DATA的内容更新到R相应的学号。
当然,我们可以写成如下内容:
Update R set ["语文成绩"]=DATA["语文成绩"],["英语成绩"]=DATA["英语成绩"],..... where ["学号"]=DATA["学号"] end;
当字段很多的时候,这是否太罗嗦了呢?下列写法是否会让你觉得简洁多了呢?
Update R set thisrow=DATA where ["学号"]=DATA["学号"] end;
事实上,除了用于Update以外,我们还可以可以做整行相同的判断,这可以用于Delete,select等where子句中:
假定有矩阵R,其中存在全0的行,我们需要删除掉这些行,怎么做呢?
我们可以这么写:
Delete From R where [0]=0 and [1]=0 and [2]=0 .....;
我们还可以换一个很简洁的写法:
Delete From R where Sum(ThisRow*ThisRow)=0; //条件为每一个元素的平方和为0
当然,甚至我们还可以直接用TSL所支持的相等判断符:
Delete From R where ThisRow=Zeros(MCols(R));//条件为行为一个全零数组。
用户可以自己去发掘出ThisRow的更多用途,作为程序开发人员而言,最重要的是学会自己思考。