日期:2014-05-18  浏览次数:20612 次

第一次求助:关于SQLSERVER2000中TEXT类型字段读取和TIMESTAMP类型的两个问题。
第一个问题:

我在做留言板程序时,因为留言数据可能较大需要将保存留言内容的字段gst_content设为TEXT类型允许为NULL,当留言为空时用rs.getString( "gst_content ")读取该字段会报如下错误:
  Servlet.service()   for   servlet   jsp   threw   exception
java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]Underlying   input   stream   returned   zero   bytes
at   com.microsoft.jdbc.base.BaseExceptions.createException(Unknown   Source)
at   com.microsoft.jdbc.base.BaseExceptions.getException(Unknown   Source)
at   com.microsoft.jdbc.base.BaseData.getString(Unknown   Source)
at   com.microsoft.jdbc.base.BaseResultSet.getString(Unknown   Source)
at   com.microsoft.jdbc.base.BaseResultSet.getString(Unknown   Source)
at   org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:224)
at   org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:177)
at   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at   java.lang.Thread.run(Thread.java:595)
不为空时读取正常,请问该用什么方式读取为空字符串的TEXT字段才不会出错?

第二个问题:

我想保存留言的时间,就用了一个TIMESTAMP类型的字段gst_time,但用rs.getTimestamp()方法读时又产生了
类型不能转换的错误,请问SQLSERVER中有什么方式可以保存更改数据的时间,好像MYSQL可以。我应用什么方式保存这个时间?有实现代码更好。
            这是我第一次求助,希望大家知道多少说多少,谢谢了!  
            加一百分,不够我再加哦!


------解决方案--------------------
将留言内容默认值设置 为 " " 就可以了



------解决方案--------------------
谢谢回复,
但默认设置后,当保存空的留言到这个字段的时候又为 " "了
有没有更好的解决方法?
------解决方案--------------------
还有你数据库操作的代码贴出来 给大家看看
------解决方案--------------------
第一个问题的回答:替换一下sqlserver最新驱动,或在应用中