近来发现一个Delphi莫名其妙的bug,当使用SetOptionalParam时,不能使用一连串数字的字符串,如'101',注意,是带引号的。在SaveToFile时,就会出现'Invalid field type'的异常,真是百思不得其解!连'001'这种串也不行,去掉引号,直接按数字赋值,则正常。
procedure TForm1.Button1Click(Sender: TObject);
var
cds:TClientDataSet;
begin
cds:=TClientDataSet.Create(nil);
with cds do
begin
FieldDefs.Add('f1',ftString,50);
CreateDataSet;
end;
cds.SetOptionalParam('ppppp','101');
cds.SaveToFile('c:/sss.dat'); //出现异常:Invalid field type!,把101改为abc,正常
cds.Free;
end;