字段类型为char,大小为6000,存储一个只有几百个汉字的数据,就报了这个错误。
为什么啊??
我用了trim()也不行。在2000系统下是好的,怎么到了nt就不行了呢~~~

解决方案 »

  1.   

    说真的,我还没试过在2000下用过,所以对于长字段,我都是用的TEXT型
      

  2.   

    char,不能舍得那么长吧,你要改变一下你的数据类型了
      

  3.   

    我的数据是放在一个memo里面的,我吧数据类型改为text之后,query.SQL.Add('insert table (Content) values (:sContent) ');
    query.ParamByName('sContent').AsString:=memo.Text;
    这样子写还是不行啊~~~
      

  4.   

    ADOQuery1.Parameters.ParamByName('sContent').AsString:=memo1.lines.Text;
      

  5.   

    有两种方法解决,第二种要麻烦点,但保险些1。不能用ASSTRING,因为已经不是用这种类型在处理了
    query.SQL.Add('insert table (Content) values (:sContent) ');
    parambyname('qq').assign(memo1.lines);2。这是我的一部分程序,其中QQ为QUERY中TEXT参数名,你自己的根据实际情况修改
    var buffer : TMemoryStream;
    begin
    buffer:=TMemoryStream.create;
    memo1.Lines.SaveToStream(buffer);
    with query2 do
    begin
     close;
     parambyname('qq').LoadFromStream(buffer,ftMemo);
     execsql;
    end;
    buffer.Free;
    end;
      

  6.   

    有两种方法解决,第二种要麻烦点,但保险些1。不能用ASSTRING,因为已经不是用这种类型在处理了
    query.SQL.Add('insert table (Content) values (:sContent) ');
    parambyname('qq').assign(memo1.lines);2。这是我的一部分程序,其中QQ为QUERY中TEXT参数名,你自己的根据实际情况修改
    var buffer : TMemoryStream;
    begin
    buffer:=TMemoryStream.create;
    memo1.Lines.SaveToStream(buffer);
    with query2 do
    begin
     close;
     parambyname('qq').LoadFromStream(buffer,ftMemo);
     execsql;
    end;
    buffer.Free;
    end;