delphi语法,基础知识给对象赋值的问题
定义一个数据集
TempCdsPrint:TClientDataSet;
ss:string;
try
TempCdsPrint:=TClientDataSet.Create(nil);
TempCdsPrint :=cds_info;
finally
TempCdsPrint.Free;
end;
ss:=cds_info.fieldbyname('xm').asstring;
cds_info也是一个TClientDataSet类型的数据集,当TempCdsPrint.free后,为什么cds_info也没了,怎么样可以保存cds_info不会free掉,因为当执行到ss:=cds_info.fieldbyname('xm').asstring;时报错,没有值了。而把ss:=cds_info.fieldbyname('xm').asstring;这句放到TempCdsPrint.Free释放前,是没有问题的。
[解决办法]
TempCdsPrint:TClientDataSet;
ss:string;
try
TempCdsPrint:=TClientDataSet.Create(nil);
TempCdsPrint :=cds_info;
finally
TempCdsPrint.Free;
end;
其实声明了TempCdsPrint之后,他就是个指针,完全不用Create,然后直接
TempCdsPrint :=cds_info;