你在建立存储过程的时候,传入的参数用unicode,例如:nvarchar等试试看

解决方案 »

  1.   

    我的程序使用BCB做的,别人的Delphi做的就正常啊?大家快快帮忙啊。
      

  2.   

    你的变量定义的宽度不够,定义大一点例如:declare @a char(2)
    set @a='中国'
    select @a--结果:中
    因为一个汉字占用两个字节,所以上面的被截断
      

  3.   

    都不是以上的原因,数据库里头的变量长度绝对够。
    现象是这样的:
    如果传入“你好”则变成“你”
    如果传入“你好aaaaaa”则变成了“你好aaaa",正好丢失2个字节。
    传入“你好中国aaaaaa”,变成了“你好中国aa”,正好丢失中文字符个数的字符。
    别人的程序又正常。
      

  4.   

    数据在传给存储过程的时候正常。
    我通过ADO调用ODBC连接SQLServer,则报以下错误:
    字符串数据,右截位
      

  5.   

    传入的数据绝对没有问题。长度也足够。我现在是想问世是BCB的问题还是ADO驱动版本的问题。