我在数据库中保存了一个50位的字符串,但我用aqryBusorder.FieldByName('State').AsString 取出来就变成了,不固定,有时43位,有时41位,有时又正常。但我查看数据库中又是正常的。我用的是SQL Server 2000+Delphi 6.0,这个字段采用的是varchar(50),也用过char(50)。我已经打了pack 2了,不知哪位大侠能指点一下。

解决方案 »

  1.   

    用varchar(50)就会,因为是可变的用char(50)就不会,长度固定;这不是bug
      

  2.   

    不是这个意思,我的数据库中有50位数据比如50个'1',但取出来就只有41个‘1’了,同样的数据有时又有43个'1',这个数据是不固定的。而且我用char(50)也是这样的。我先就是用的char(50),然后才改成的varchar(50)
      

  3.   

    varchar(50)就会,因为是可变的
    用char(50)就不会,长度固定;
    这不是bug
      

  4.   

    用nvarchar(50)吧,nvarchar与varchar类型相似,不同的是nvarchar采用unicode标准字符集
      

  5.   

    把字段长度加大一点是,比如 varchar(60)
      

  6.   

    我用了char(50)还是一样有问题。