表结构:
id int(自增)
Texts varChar(5000) 代码:
query1.sql.add(select * from table1);
query1.open;
query1.append;
query1.fieldbyname('Texts').asstring := Str ;//长度大于1000
query1.post;问题:
   保存进去的数据  只有一部分  不是str全部
为什么????有什么解决方法??    急!   

解决方案 »

  1.   

    我用存储过程!
    sP.PARAMbyname('@Texts').asstring := Str ;//长度大于1000@TEXTS varchar(5000)也不行!!!!
      

  2.   

    试下
    query1.fieldbyname('Texts').value := Str 
    其实这末长 完全可以写语句
      

  3.   

    你在那里查询发现只保存了一部分?是否是显示的不全导致的?(查询分析器默认每列最多显示255个字节)
    建议你用下面的语句查询一下字段中数据的长度:
    select datalength(Texts) from table1另外,查询分析器中直接插入是否会出现同样的问题?
      

  4.   

    delphi代码:
    query1.sql.add(select * from table1);
    query1.open;
    query1.append;
    query1.fieldbyname('Texts').asstring := Str ;//长度大于1000
    query1.post;query1.CLOSE
    query1.sql.add(select * from table1);
    query1.open;
    Str1  := query1.fieldbyname('Texts').asstring ;//长度大于1000
    str1  短于  str
      

  5.   

    程序的问题帮不上忙了,delphi版的这么多人,帮你测试一下不就知道了.
      

  6.   

    可能是你的STR 的类型的问题
      

  7.   

    我在查询分析器里测了一下
    insert into test select
    '12345678901234567890
    ...
    ...
    ...
    12345678901234567890'//我打了400多个字
    然后 select datalength(text) from test
    返回值是4166
    也就是说实际是存进去了 只是在 select * from test 的时候查询分析器显示不全只有255
    你试试这样写
    str:string;
    begin
    str:='12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890'
      +'12345678901234567890123456789012345678901234567890';
      with Adoquery1 do
      begin
        sql.text:='insert into test select '+#39+Str+#39;
        execsql;
      end;应该是可以的 
      

  8.   

    写进去是否对不,放置个Memo控件或者RichEdit,再把它取出来,看看是不是你写入的数据,不就行了么?何必这么麻烦啊!
      

  9.   

    保存进去的数据  只有一部分  不是str全部
    为什么????
    答:你用是字符串型,他支持的最大长度为 255。
    解决方案1:wideString;
      

  10.   

    你用adoquery就可以了,否则不行的,dbexpress中也可以。