我用Delphi5访问SQL Server表的Varchar字段,
为什么明明数据库里存的长度是超过255字节的,取
出的时候就最多只有255字节?
Delphi5文件里面已经设置了$H+?
test: string;
test := FieldValues['D_Properties'];
showmessage(inttostr(Length(test)));
只有255?

解决方案 »

  1.   

    string类型的长度也是有限制的,你可以用
    test:="kdkdkdkkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkdkkdkdkdkkkdkdkdkkdkdkdkdkdkdkdkdkdk............."+"sdfjsdlfjs",即分几次赋值。
      

  2.   

    string的长度可以达到4GB,应该够用吧。不过Delphi将超过256的字符串都看成备注类型。所以处理时你要注意。
      

  3.   

    现在数据库表里面D_Properties的字段内容是正确的,可以超过256字节。但是,用FieldValues读出的时候为什么读不全呢?
    若变为备注类型了,如何取出全部呢?
      

  4.   

    test: string; -> test :widestring ;
      

  5.   

    看了以前得帖子,
    http://expert.csdn.net/Expert/topic/1126/1126172.xml?temp=.7195703
    我把Varchar类型改成text是好的。
    但是用WideString 或者AnsiString都不能够解决。
    但是觉得改成Text的方法太不令人满意了,
    谁知道怎么解决,高分!
      

  6.   

    如果这样呢?
    edit.text:=substring(xx,1,256)+substring(xx,257,256)
    substring 是我乱写的。反正就是利用截取字符串函数
    我没试过.
      

  7.   

    应该是数据库的类型不对,好象varchar最多只能有255个,你用text类型试试.