delphi中的tclientdataset.field,给他赋值,有时候发现会被截断,双击控件发现被赋字段的size大于内容,此时应该看看fieldDefs属性且stroedefs为true,尤其是没有指定providername的cds,把两边的长度改一致就可以了.
另一种截断很麻烦了.
比如:
create table tbl(a varchar(3))
go
cds.append;
cds.FieldByName('a').Value := '测试1个';
cds.Post;
保存到tbl后,值是:"测试1",此时1后面有一个不可见ascii,len(a)=4而不是3.这个可以说是一个bug吧,就算把adodb.pas的VarDataSize函数改为Result := Length(Value)也一样发生,除非输入1的时候专门切换成全角