字段定义: content为备注型。 何况我上面说了,我增加记录(用的是insert语句)的时候是正常的。现在去修改时出现了这错。谢你了

解决方案 »

  1.   

    access的相应数据库的字段类型有问题。
    备注型的或者改成适合范围的文本以及字符串。
      

  2.   

    content为备注型但是不一定是content出的问题;也许其他字段不够长,你再看看
      

  3.   

    大家要看到的是我在增加记录是没有问题的,不管content是多少字符,这就说明起码表结构应该是正确的(不知这话是否对?)。现在的问题是在修改此记录时出现了截断的错误,另外,to weidegong: 我在修改时仅改内容字段(content),其它都没有改,并且当我仅改content字段时,输入的字符数较少时,程序是没有错的,可以更新。
      

  4.   

    你增加记录时content的内容是多长?是用的什么语句增加的。
    问题在于pstmt.setString(8,scontent);更新数据时可能对scontent的长度有限制你试试不用PreparedStatement而用Statement。
      

  5.   

    你增加记录时content的内容是多长?是用的什么语句增加的。
    问题在于pstmt.setString(8,scontent);更新数据时可能对scontent的长度有限制你试试不用PreparedStatement而用Statement。
      

  6.   

    你增加记录时content的内容是多长?是用的什么语句增加的。
    问题在于pstmt.setString(8,scontent);更新数据时可能对scontent的长度有限制你试试不用PreparedStatement而用Statement。
      

  7.   

    我专门用单,双引号 N 个都试过了,在字符数少时更新是可以的。但就数不能用较多字符。 帮帮手。。thanks.
      

  8.   

    在字符数少时更新是可以的。但就数不能用较多字符。 帮帮手。。thanks.?
    要更改为的新指字符多时不能更新,那不就是说字符长度不够吗?你定义的字符长度是多少?你更新的字符长度又是多少?
      

  9.   

    你增加记录时content的内容是多长?是用的什么语句增加的。
    问题在于pstmt.setString(8,scontent);更新数据时可能对scontent的长度有限制你试试不用PreparedStatement而用Statement。
      

  10.   

    TO 上面的朋友们:
       
       content 是备注字段。 access2000+tomcat   我已经测试了,当我的scontent.length<=255 时可以更新。>255就出javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access  驱动程序]字符串数据,右截断 (null) 错。   增加用的是 insert语句.String sql="insert into xinwen(title,content,type,key,author,original,ntime,imgcount) values('"+stitle+"','"+scontent+"','"+stype+"','"+skey+"','"+sauthor+"','"+sorginal+"','"+Utime+"',"+icount+")";
    stmt.executeUpdate(sql);   --------- 插入1000个字符都没有问题。表结构就应该没有问题了吧!   修改时用 PreparedStatement 怎就不行呢。真的 255 是个槛,stmt.setString(8,scontent)跨不过去?我知道access文本型字段是不能大于255,可我这是备注型的呀。
      

  11.   

    try:
    更新不用PreparedStatement,而用stmt.executeUpdate(sql);
    问题在于pstmt.setString(8,scontent);只能用255个字节。
      

  12.   

    唉,本来是不愿下面这样写的,没法为了能运行,用了它就可以正常更新 strsql="update xinwen set title='"+stitle+"',key='"+skey+"',author='"+sauthor+"',imgcount="+icount+",original='"+sorginal+"',type='"+stype+"',ntime='"+Utime+"',content='"+scontent+"' where newsid="+sid;  stmt.executeUpdate(strsql);真不知道 PreperedStatement 怎了??? 想问一下:大侠们你们更新用什么方法呢?
      

  13.   

    to  Andrawu:
       书上可是说setString()能发送无限量的数据呀,何况也没有哪里特别说了PrepareStatement的方法就只能发<=255个字符呀。谢谢setString
    public void setString(int parameterIndex,
                          String x)
                   throws SQLException
    Sets the designated parameter to a Java String value. The driver converts this to an SQL VARCHAR or LONGVARCHAR value (depending on the argument's size relative to the driver's limits on VARCHARs) when it sends it to the database.我把 setString() 的API贴出来了,看的出它转换成 SQL VARCHAR or LONGVARCHAR value 那我的备注字段就不在此列了????我该怎办?