Delphi 7 的一个奇怪的Bug

本文描述了在Delphi中使用SetOptionalParam方法时遇到的一个奇怪的问题:当参数为纯数字字符串时,例如'101',在调用SaveToFile方法时会触发'Invalidfieldtype'异常。通过实验代码重现了该问题,并提供了可行的解决办法。

近来发现一个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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值