JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » JDBC/SQL討論區 » Microsoft SQL Server  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 資料寫入資料庫時出現陳述式已經結束
gfyy0827





發文: 54
積分: 0
於 2008-11-25 17:47 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
各位大大好,

我剛接觸JSP語言不久,

目前用JAVASCRIPT寫了一個線上Webedior,

但是由於文案內容會很多,因此我在資料庫設了三個欄位,欄位型態都為varchar 8000

這樣代表說我可以寫入共12000個中英文字(包含空白、段落)

但是我發現超過一定的字數後,就會出現(沒有超過就會存取正常)

2008/11/25 下午 05:33:57 org.apache.catalina.core.StandardWrapperValve invoke
嚴重的: Servlet.service() for servlet jsp threw exception
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]陳述式已經結束。
  at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
  at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
  at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processInfoToken(Unknown Source)
  at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
  at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
  at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
  at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
  at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
  at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
  at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
  at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
  at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
  at com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown Source)
  at org.apache.jsp.test.Manage.Charge.ChargeModifyProcess_jsp._jspService(ChargeModifyProcess_jsp.java:252)
  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
  at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
  at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
  at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:124)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
  at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
  at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
  at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
  at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
  at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
  at java.lang.Thread.run(Unknown Source)

程式碼的判斷我是這樣判斷的...

String ChargeContent = rf.getParameter("content");
if (ChargeContent.length()>4000){
  if (ChargeContent.length()<=8000){
    ChargeContent1 = ChargeContent.substring(0,4000);
    ChargeContent2 = ChargeContent.substring(4000,ChargeContent.length());
  }else{
    ChargeContent1 = ChargeContent.substring(0,4000);
    ChargeContent2 = ChargeContent.substring(4000,8000);
    ChargeContent3 = ChargeContent.substring(8000,ChargeContent.length());
  }
}

prepStmt = Conn.prepareStatement("UPDATE Charge SET ChargeName = ? ,ChargeContent = ?,ChargeContent2 = ?, ChargeContent3 = ?, ModifyDate = ?, Modifier = ? WHERE ChargeID = ?");
prepStmt.setString(1,ChargeName);
prepStmt.setString(2,ChargeContent1);
prepStmt.setString(3,ChargeContent2);
prepStmt.setString(4,ChargeContent3);
prepStmt.setString(5,CreateDate);
prepStmt.setString(6,Name);
prepStmt.setString(7,ChargeID);
prepStmt.executeUpdate();


可是我用WORD統計字數並沒有超過12000呀...

頁數 7
字數 1915
字元數(不含空白) 5872
字元數(含空白) 6284
段落數 1
行數 256
半形字 444
全形字 1471

為何還會出現錯誤呢@@?

我的資料庫是MS SQL,麻煩大大了><

我找了一個下午了Sad


reply to postreply to post
Programmer是條不歸路。
http://www.wretch.cc/blog/etchen
話題樹型展開
人氣 標題 作者 字數 發文時間
3871 資料寫入資料庫時出現陳述式已經結束 gfyy0827 4618 2008-11-25 17:47
2752 Re:資料寫入資料庫時出現陳述式已經結束 yahoo1234tw 21 2008-11-25 19:36
2780 Re:資料寫入資料庫時出現陳述式已經結束 dennisma 21 2008-11-25 19:41
2756 Re:資料寫入資料庫時出現陳述式已經結束 gfyy0827 289 2008-11-26 00:55
2694 Re:資料寫入資料庫時出現陳述式已經結束 drinkin 50 2008-11-26 08:18
2728 Re:資料寫入資料庫時出現陳述式已經結束 gfyy0827 136 2008-11-26 09:26
2683 Re:資料寫入資料庫時出現陳述式已經結束 ethan_victory 129 2008-11-26 09:45
2851 Re:資料寫入資料庫時出現陳述式已經結束 gfyy0827 799 2008-11-26 10:45
2673 Re:資料寫入資料庫時出現陳述式已經結束 koji 200 2008-11-26 11:02
2669 Re:資料寫入資料庫時出現陳述式已經結束 gfyy0827 35 2008-11-26 12:32
2789 Re:資料寫入資料庫時出現陳述式已經結束 gfyy0827 95 2008-11-26 15:04
2725 Re:資料寫入資料庫時出現陳述式已經結束 simontiis 61 2008-12-10 16:42
» JWorld@TW »  JDBC/SQL討論區 » Microsoft SQL Server

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8