用sql insert插入的数据,在取出来怎么变了

法尔我给他 2009-04-19 11:46:22
我用的是adox,用_ConnectionPtr才Execute()执行的sql语句,INSERT INTO officers ([officer_name],[officer_password])VALUES('Admin','123'),我再用_RecordsetPtr取出来是,通过_variant_t.bstrVal转换出来后,怎么都多好多空格吧,应该是,就是"Admin"变成了"Admin ","123"变成了"123 "这个样子,在数据库中这两个都是char(10),程序中都是CString,这是怎么回事呀?怎么解决?谢谢!
...全文
84 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
估计是你在sql插入的数据类型,本身设置了长度。
mynamelj 2009-04-20
  • 打赏
  • 举报
回复
用变长字段,varchar
xtjqu 2009-04-20
  • 打赏
  • 举报
回复
CString::Trim()
法尔我给他 2009-04-20
  • 打赏
  • 举报
回复
刚才试过了,是自动在后面补充的到10个字节的空格,这个问题怎么解决呀?谢谢!
zhaohongbo83 2009-04-20
  • 打赏
  • 举报
回复
varchar是直接分配指定的长度的
varchar2是根据需要动态分长度的,最长不会超过指定的长度
zhaohongbo83 2009-04-20
  • 打赏
  • 举报
回复
把字段改成varchar2的就不会有这种情况发生了
法尔我给他 2009-04-20
  • 打赏
  • 举报
回复
ok1234567 大大回答的最让人明白的最快回答,所以多给了点,呵呵!
法尔我给他 2009-04-20
  • 打赏
  • 举报
回复
给位大大的回答都对,我昨天晚上突然想到为什么空格正好是不足的,查了一下,果然是自动补足的,所以已经解决了,谢谢各位大大的回答,分数不多,平分了!
ok1234567 2009-04-20
  • 打赏
  • 举报
回复
将数据库关联字段设置为varchar或者nvarchar
或者在客户端对于相关变量做TrimRight处理
zhangchaokun 2009-04-20
  • 打赏
  • 举报
回复
你的SQL数据库设置数据的时候出现问题了,把char(10)类型改成varchar(10),之后所有数据就没有问题了;
对于已经录入的数据,你还要手动去掉数据库中的后面的空格。
Oliver2891 2009-04-20
  • 打赏
  • 举报
回复
varchar2比较好,动态长度的,我一直在用
dengxuxing 2009-04-20
  • 打赏
  • 举报
回复
用varchar是最好,它占用空间比char要少,char类型的话你定义有多长就占用多长,不足回用空格填充的尽量不用char,而varchar就不回.
qwd100815 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhaohongbo83 的回复:]
varchar是直接分配指定的长度的
varchar2是根据需要动态分长度的,最长不会超过指定的长度
[/Quote]
正解

4,011

社区成员

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

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