TClientDataSet的字段赋值时如果字符串最后是空格,保存后空格会丢失!(100分)

  • 主题发起人 主题发起人 Morling
  • 开始时间 开始时间
M

Morling

Unregistered / Unconfirmed
GUEST, unregistred user!
我所用的开发工具为Delphi5,数据库为Oracle8.0.5 for NT。
当我用TClientDataSet时,我将一个以空格结尾的字符串赋给一个字段,如下如示:
MyDataSet.FieldByName('MyField').AsString := 'Test ';
MyDataSet.ApplyUpdates(0);
可是当我到数据库中去查看时,发现MyField字段中的数据是'Test',最后的空格没有了!
用TTable控件没有这个问题,有哪位DX知道原因?
 
你数据库表中字段类型是VARCHAR
 
留着这空格有用吗?
 
char 和varchar 这两种类型的区别 改用char ,长度都要和数据库里字段的长度相等
 
ClientDataSet自动做的,如果是char,它还会补齐空格哪。
 
我需要这个空格!
数据库字段的类型是VARCHAR2,如果用CHAR就不对了,数据库中会把不足长度的字符串用
空格补齐的,这不是我所需要的!
我用于设置密码的,密码经过加密后有时最后一位是空格,所以如果空格截掉后,解密后
的密码就不对了!
 
如果没有好的解决办法,换个方式思考,你把加密和解密过程改一下,在加密后的字符串后加
一个字符,比如下划线,而在解密过程中去掉
 
呵呵!加解密的程序不能改了,否则很多程序需要重新编译,而且都已经发布给用户了!
我看Delphi7中的TClientDataSet有个属性:DisableStringTrim,但我试了一下,却没效果,
我想可能是我的中间层和MIDAS是D5原因吧!
有没有D5的解决办法?
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部