我的bodystr比较长,插到数据库后被切断了,为什么?
bodystr中没有包含'
 if bodystr<>'' then
                    begin
                  //  showmessage(workstr);                    ADOQuery1.Edit;
                    ADOQuery1.FieldByName('jobDetail').Value:=QuotedStr(bodystr);
                    ADOQuery1 .Post;
                     total:=total+1;
                    end;
发现数据库中的字段值为
assssssssssssssssstttttttttttttttttttttttttttttttttttttasssssssssssssssssttttttttttttttttttttttttttttttttttteeeeeeeeeeeeeeeeeeeeasssssssssssssssssttttttttttttttttttttttttttttttttttteeeeeeeeeeeeeeeeeeeeasssssssssssssssssttttttttttttttttttttttttttttttttttte(后面被切断了)

解决方案 »

  1.   

    数据库是mssql,字段类型varchar(6000)
      

  2.   

    ADOQuery1里是否把表里的字段一个一个加进来的!  如果是这样,那么在ADOQuery1加字段时,字段本身就有一个Size.
      

  3.   

    我之前有加了个SetLength(BodyStr, 524288)
    这样不行.
    那该怎么办呢
      

  4.   

    delphi有效的字符串长度是255
      

  5.   

    我按帖子
    http://expert.csdn.net/Expert/topic/2102/2102299.xml?temp=.4771997
    做了,还是不行啊,这到底要如何处理啊!
      

  6.   

    我的建议,你还是从Recordset读出内容,然后update到数据库!不要用Edit方法
      

  7.   

    我用sql 
    insert 都不行
      

  8.   

    delphi有效的字符串长度是255,一個字串不能大於255個,所以
    用數組或指針就不過出現這個問題了.
    不知道您的字串有沒有255.
      

  9.   

    string 最长是255,长于它的当然是显示不出来了啊
      

  10.   

    用widestring类型字段可以满足你的要求
    如果还是不行,,你的看看你的数据库了!!!
    因为我用WIDESTRING输入过>1K的字符
      

  11.   

    BodyStr:widestring;
     ADOQuery1.Edit;
     ADOQuery1.FieldByName('jobDetail').Value:=QuotedStr(bodystr);
     ADOQuery1 .Post;
    没有效果啊
      

  12.   

    //string是不行的
    BodyStr:widestring;
    ADOQuery1.Edit;
    ADOQuery1.FieldByName('jobDetail').Value:=bodystr;
    ADOQuery1 .Post;
    //这样试试
    --------------------------------------------------------------------
    看尽悲伤,庸人自扰不平事。叹尽荒凉,海阔天空谁人知。狂风劲兮,百花飘
    扬乱舞香。捏花一笑,海不扬波断肠心!