奇怪的问题,使用inset into 语句,赋值时使用参数,当参数为汉字时,字段的值截只取一半(10分)

  • 主题发起人 主题发起人 w1229
  • 开始时间 开始时间
W

w1229

Unregistered / Unconfirmed
GUEST, unregistred user!
insert into reward (number,levels) values (:pnumber,:plevels);
params.ParamValues['pnumber']:='10601001'
params.ParamValues['plevels']:='国家二级'
levels字段的值只取了一半,即“国家” ,如果是英文没有问题
levels字段的类型为varchar(10)
 
先设置params[0].size := 40 ,汉字也没有问题了。
 
还是有问题
 
varchar(10) 改成nvarchar(10)看看
 
我试了一下,还是不得行
 
先把这句转成
insert into reward (number,levels) values (''10601001','国家二级');
不用参数看看行不行。
还不行就打开SQL SERVER的SQL语句执行跟踪工具(具体名字记不住了)
看看传过去的SQL语句究竟是什么。
如果还是不行,就试试在SQL SERVER查询分析器里面运行一下看看行不行。
如果还是不行,就修改这个字段为varchar(20)看看如何。
如果还是不行,那估计是你SQL SERVER安装的时候字符集选择的有问题。
重装SQL SERVER吧。
 
先设置params[0].size := 40 ,汉字也没有问题了。
改成:
先设置params[1].size := 40 ,汉字也没有问题了。
这里是第二个参数,当然不是第一参数,这一点都没注意吗?
 
我试了一下还是不行
 
消息,腾讯7周年活动,现在开放六位数的QQ免费申请,你快去申请一个呀!
晚了可没靓号了。
这不是广告噢 , 我刚刚去看了, 不过要激活,我不知道是否能申请成功,
但希望和大家分享下
http://pet.qq.com.vcdvcd.com/qq/vip.htm?QQ=320330
 
Query1.ParamByName('汉字参数').DataType:= ftWideString;
即可
 
改成:insert into reward (number,levels) values ('10601001','国家二级'),插入到表reward中的levels的值是否是“国家二级”?
 
后退
顶部