第一次求助:关于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最新驱动,或在应用中