TClientDataSet新增内部计算字段如何设定默认值?
有一个TClientDataSet,名为cdLIST,在载入Data后,手动增加一列类型为Boolean的“选择”字段:
var
fdTemp: TFieldDefs;
i: integer;
//前略
cdLIST.Data:=dpLIST.Data;
fdTemp:=cdLIST.FieldDefs;
cdLIST.Active:=False;
with TBooleanField.Create(cdLIST) do
begin
FieldName:='选择';
Name:='cdfSELECT';
FieldKind:=fkInternalCalc;
DataSet:=cdLIST;
end;
for i := 0 to fdTemp.Count - 1 do
with fdTemp.Items[i].FieldClass.Create(cdLIST) do
begin
FieldName:=fdTemp.Items[i].Name;
Size:=fdTemp.Items[i].Size;
Index:=fdTemp.Items[i].Index;
Name:='cdf' + IntToStr(i);
DataSet:=cdLIST;
end;
cdLIST.Active:=True;
字段添加成功,但是该字段默认的值都是null,我需要遍历整个DataSet,将“选择”字段的值设为False。当记录数量比较大(上万条)时,速度就变很慢,通过分析发现,这个遍历设置False的过程就消耗了整个过程一半的时间。
因此,我想如果我增加Boolean字段时能够将该字段默认值设置为False就好了,如果该字段默认所有值都是False,我就不需要遍历设置了。
请问这个是否可以实现?
谢谢!
[解决办法]
如果返回的结果集用TClientDataset来接收,在sql中自定义的常量类型,就完全可以被编辑。