在数据库里面取出数据后,为什么字符的总后面多一个空格呢?

nightlocus 2004-09-28 10:20:35
我是用ado读取的数据
_variant_t var_PIN=m_recordset->GetCollect("UserPIN");
CString v_PIN=var_PIN.bstrVal;
_variant_t var_Confirm=m_recordset->GetCollect("IsConfirm");
可是我跟踪后发现,v_PIN总是后面多了一个空格。这是怎么回师?
...全文
603 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Plumh 2005-01-17
  • 打赏
  • 举报
回复
同意楼上的

TrimRight就可以了
jinxuliang 2005-01-14
  • 打赏
  • 举报
回复
大哥是这样的问题,你在设计的字段没有完全写满造成的。比如你设计一个字段长度为6只写了5个字符。那么你取出来的数据,就有一个空格在后面。
yuantc 2005-01-12
  • 打赏
  • 举报
回复
但是在foxpro中好像没有varchar类型,怎么解决
Mutalisk 2004-09-30
  • 打赏
  • 举报
回复
同意楼上的,char型的会用空字符来填满的
zhaogaojian 2004-09-30
  • 打赏
  • 举报
回复
确实有时是会多出空格,楼上的方法应该可以
CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
zgzg 2004-09-29
  • 打赏
  • 举报
回复
字段定义要改为varChar
内存泄漏 2004-09-28
  • 打赏
  • 举报
回复
CString v_PIN = _com_util::ConvertBSTRToString((_bstr_t)m_recordset->GetCollect("UserPIN"));
你这样看看有没有空格?一般数据库都没有这样的bug的。。
nightlocus 2004-09-28
  • 打赏
  • 举报
回复
不可能的,我是在里面直接读出来的,我亲自输入的数据,看了,会不会是数据库bug啊
内存泄漏 2004-09-28
  • 打赏
  • 举报
回复
是不是数据库当中的数据本来就多了一个空格啊??你自己把数据处理一下好了:
v_PIN.TrimRight();
nightlocus 2004-09-28
  • 打赏
  • 举报
回复
怎么每人回呢?

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧