关于修改ADO.recordset.field的一个问题

jaopen 2003-10-17 02:47:15
数据库里的某个char字段定义为20个字符,第一次操作该字段添加时,只有四个字符,第二次修改该字段时,若字符数目大于四个,也就是大于当前field.actualsize值,则会报错,有什么办法解决这种问题?

...全文
72 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jaopen 2003-10-18
  • 打赏
  • 举报
回复
错误发生在客户端里往field对象中赋值的时候
啊呀 2003-10-17
  • 打赏
  • 举报
回复
保存时数据库会转换‘1234’成
'1234□□□□□□'

'1234□□□□□□' + 'BCD'
长度要比10个长

'1234□□□□□□'
的长度等于
'1234567890'
zjcxc 2003-10-17
  • 打赏
  • 举报
回复
如果你表中存储的字符数据长度不是固定的,建议你改用varchar类型.当然,效率会略低于char
zjcxc 2003-10-17
  • 打赏
  • 举报
回复
--你是怎么修改的?char类型的字段,其后面会自动补空格.修改的时候要去空格.

--例子:
declare @tb table(a char(10))
insert into @tb
select 'a'
union all select 't'
union all select 'z'


--update @tb set a=a+'abc' --如果执行这句就会错.
update @tb set a=rtrim(a)+'abc' --正确的写法,去掉尾部空格再处理.
yujohny 2003-10-17
  • 打赏
  • 举报
回复
你修改数据库应该是在企业管理器,或者前途控件改的吧

因为char类型是会在后面添加空格充满20个字符
所以你不删掉后面的空格,再添加进字符,肯定报错。

你改字段类型为varchar或nvarchar,然后用这个语句批量将空格去掉
update 表 set 字段=RTRIM(字段)
sdhdy 2003-10-17
  • 打赏
  • 举报
回复
把该字段定义的大一些
alter table tablename alter column colname varchar(255)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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