CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

使用sql的text类型的问题。

楼主woolceo(努力升仙)2005-06-02 01:11:24 在 Java / Web 开发 提问

我用sqlserver做数据库,tomcat连接池。  
   
  我的sqlserver有如下字段:  
  test1         varchar(255)  
  test2         text  
  test3         text  
  test4         text  
  test5         text  
   
  调用显示的时候报错。把所有text类型全部改成varchar就完全没问题。  
   
  程序是肯定没错的,因为改了数据类型就没错,况且程序就那么几句,很简单。  
   
  大家有没遇到这个问题?  
   
  请教答案。 问题点数:20、回复次数:34Top

1 楼xmayxmei(八月狐)回复于 2005-06-02 09:09:26 得分 1

text在数据库里存储和VARCHAR不一样,  
  他存储的不只值,而是指针,  
  JSP得到的NULL会出现异常,  
  所以,TEXT为空值时,就会出错。Top

2 楼woolceo(努力升仙)回复于 2005-06-02 11:50:30 得分 0

感谢楼上答复。  
   
  请允许我再问一下,一般做论坛或新闻,保存内容的字段应该用什么类型呢?  
   
  我以前用access的时候有种类型叫“备注”的。Top

3 楼sleet96(菜菜)回复于 2005-06-02 13:46:34 得分 0

markTop

4 楼woolceo(努力升仙)回复于 2005-06-02 16:49:05 得分 0

请说清楚好么?sqlserver里面没有一种叫mark的类型啊。Top

5 楼geelpheels(geelpheels)回复于 2005-06-03 17:21:02 得分 0

长的用text短的用varcharTop

6 楼qingzhuang(半片云)回复于 2005-06-03 17:30:35 得分 0

长短问题Top

7 楼woolceo(努力升仙)回复于 2005-06-03 19:10:47 得分 0

但我用text的话会报错啊。什么问题?Top

8 楼feng198424(无花无酒锄作田)回复于 2005-06-03 23:10:37 得分 0

插入数据的话,如果为空的话,给它插入一个""值  
  权宜之计Top

9 楼feng198424(无花无酒锄作田)回复于 2005-06-03 23:11:22 得分 0

或者读取text值的时候做个判断Top

10 楼woolceo(努力升仙)回复于 2005-06-04 14:09:35 得分 0

这样子啊。。。我去试下。。。谢谢。Top

11 楼woolceo(努力升仙)回复于 2005-06-04 14:15:05 得分 0

还是不行啊。Top

12 楼woolceo(努力升仙)回复于 2005-06-04 14:15:54 得分 0

ps一下,我用rs.getString()读取没问题吧?Top

13 楼Three_H(游戏就是我的生命)回复于 2005-06-04 15:00:06 得分 0

JSP读SQLSERVER的TEXT字段会有问题,如果TEXT字段为""和NULL就会报错!  
  解决办法:  
  你插入数据之前进行判断,如果为""或NULL就插入"   ",就是插入空格字符!Top

14 楼woolceo(努力升仙)回复于 2005-06-05 12:12:49 得分 0

我数据库全部字段都有值了啊。  
   
  但读取就还是出错,为什么啊?  
   
  请教。谢谢。Top

15 楼woolceo(努力升仙)回复于 2005-06-05 23:38:17 得分 0

顶!Top

16 楼oldmoon(电子商务人,电子商务路)回复于 2005-06-06 08:04:20 得分 0

最好是把源代码贴出来看一下!Top

17 楼woolceo(努力升仙)回复于 2005-06-07 01:01:29 得分 0

楼上,跟代码没关的。Top

18 楼xindear(逆行)回复于 2005-06-07 01:31:52 得分 0

不要意思  
  Text类型内容是多行的,如果用rs.getString()的到的字符串里是不是有回车或换行符的啊Top

19 楼woolceo(努力升仙)回复于 2005-06-08 11:54:16 得分 0

楼上,我测试的数据都是很简单的“aaa”“333”这些,但都报错。  
   
  继续请教。Top

20 楼linhao315(浩哥)回复于 2005-06-08 12:11:43 得分 0

markTop

21 楼woolceo(努力升仙)回复于 2005-06-10 12:03:29 得分 0

楼上,mark是什么意思?Top

22 楼woolceo(努力升仙)回复于 2005-06-11 01:03:24 得分 0

继续顶。Top

23 楼yun15291li(秋飞意)回复于 2005-06-11 03:59:10 得分 1

请说清楚好么?sqlserver里面没有一种叫mark的类型啊。这句话是我见过最搞笑的,自己用金山词霸查一下就知道了。不会真的到sqlserver里找mark类型了吧。  
   
  其实不要那么绝对相信代码没问题的。如果都有值了,就用getString   是可以把txt内容得到的。只是如果还想换行需要处理一下(以前有过类似的帖子)http://search.csdn.net/Expert/topic/1564/1564974.xml?temp=.9825403可以看看如何读出来换行的代码。Top

24 楼xyj0323(好好学习,天天向上)回复于 2005-06-11 05:59:57 得分 0

帮你顶!Top

25 楼woolceo(努力升仙)回复于 2005-06-11 14:27:03 得分 0

to       yun15291li(秋飞意)    
  ===============================  
  谢谢你的回复。我现在text类型的字段里有值的啊。而且没有任何换行之类的符号的。只是简单的“aaa”之类的内容,为什么还会有错呢?Top

26 楼yun15291li(秋飞意)回复于 2005-06-11 15:58:47 得分 0

把错误提示帖出来,对应相关代码以及数据库部分。应该不是什么难点,只是哪里疏忽了吧。Top

27 楼woolceo(努力升仙)回复于 2005-06-11 22:55:21 得分 0

java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]ResultSet   can   not   re-read   row   data   for   column   5.  
  at   com.microsoft.jdbc.base.BaseExceptions.createException(Unknown   Source)  
  at   com.microsoft.jdbc.base.BaseExceptions.getException(Unknown   Source)  
  at   com.microsoft.jdbc.base.BaseResultSet.validateColumnIndex(Unknown   Source)  
  at   com.microsoft.jdbc.base.BaseResultSet.getString(Unknown   Source)  
  at   com.microsoft.jdbc.base.BaseResultSet.getString(Unknown   Source)  
  at   org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:224)  
  at   com.heatpixel.news.bean.NewsDAO.listAllNews(NewsDAO.java:340)  
  at   com.heatpixel.news.tag.NewsList.doStartTag(NewsList.java:56)  
  at   org.apache.jsp.admin.index_jsp._jspService(index_jsp.java:76)  
  at   org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  
  at   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)  
  at   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)  
  at   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)  
  at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)  
  at   com.heatpixel.global.servlet.SetCharacterEncoding.doFilter(SetCharacterEncoding.java:33)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)  
  at   com.heatpixel.global.servlet.FiltrateHeader.doFilter(FiltrateHeader.java:54)  
  at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)  
  at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)  
  at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)  
  at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)  
  at   org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)  
  at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)  
  at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)  
  at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)  
  at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)  
  at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)  
  at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)  
  at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)  
  at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)  
  at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)  
  at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)  
  at   org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)  
  at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)  
  at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)  
  at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)  
  at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)  
  at   java.lang.Thread.run(Thread.java:534)  
  Top

28 楼woolceo(努力升仙)回复于 2005-06-11 23:01:41 得分 0

数据库结构如图:  
   
  http://www.ood.com.cn/wool/photo/2005611233270.jpg  
   
  再次感谢大家。Top

29 楼NetRep_Loser(领悟非凡)回复于 2005-06-12 11:46:36 得分 8

不是text字段的空不空值的问题  
  而可能是你读完一个字段值之后又回来读  
  sqlserver是不允许这样读取字段值的  
  而且在查询结果中读取字段,是按顺序的,不能乱来  
   
  一般都用text字段,大文本嘛  
  如果考虑到可移植性(应用不同数据库),就不能用text  
  另外有的系统项目是讲大文本保存到文本文件中  
  然后数据表格中增加一字段,用来保存该文本文件名称  
  Top

30 楼woolceo(努力升仙)回复于 2005-06-12 12:45:26 得分 0

楼上,我的程序只是一个简单的while循环,只读了一次的啊。百思不得其解。  
   
  这个问题困扰我好久了啊。  
   
  希望大家帮忙!谢!Top

31 楼wangkunhong(乔.Jo)回复于 2005-06-12 13:53:50 得分 10

如果你读出到页面的时候,内容里面有text字段,那么你在读取的时候一定要按字段的顺序来读。。Top

32 楼woolceo(努力升仙)回复于 2005-06-12 15:31:36 得分 0

楼上什么意思?小弟对数据库不熟悉,请详细点说明好么?感谢。Top

33 楼yun15291li(秋飞意)回复于 2005-06-12 17:54:09 得分 0

查询的sql语句错误。  
  ...  
  你写成select   *   from   tablename   where   id   =   1;  
  ....  
  while(rs.next()){  
  ...  
  ...rs.getString(1);  
  ...rs.getString(2);  
  ....  
  ....  
  }Top

34 楼woolceo(努力升仙)回复于 2005-06-13 01:33:45 得分 0

问题已解决,是顺序问题。感谢大家。Top

相关问题

  • 使用sql的text类型的问题。
  • TEXT类型字段使用
  • 如何使用SQL Server的binary类型?
  • SQL 2000 Text数据类型的问题
  • 关于text数据类型的使用
  • 笨问题SQL字段类型为datetime 在C#使用什么类型匹配?
  • ADO控件中,想使用SQL,则命令类型是哪个?
  • 如何在SQL语句中使用日期(date)类型
  • sql server中图形数据类型如何使用
  • 请问SQL里的时间绰类型(timeStamp)如何使用(Delphi)

关键词

  • .net
  • 字段
  • apache
  • 数据库
  • sqlserver
  • applicationfilterchain
  • standardvalvecontext
  • catalina
  • core
  • standardpipeline

得分解答快速导航

  • 帖主:woolceo
  • xmayxmei
  • yun15291li
  • NetRep_Loser
  • wangkunhong

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo