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

sql 查询语句错误distinct

楼主zode(德)2005-02-02 13:55:04 在 Java / Web 开发 提问

 
  JSP页面如下:  
  <%@   page   contentType="text/html;   charset=gb2312"   language="java"   import="java.sql.*"   errorPage=""   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.01   Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">  
  <html>  
  <head>  
  <title>Untitled   Document</title>  
  <jsp:useBean   id="connManager"   scope="application"   class="MySearch.DBConnManager"   />  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  </head>  
  <body>  
  <p>&nbsp;</p>  
  <p>&nbsp;</p>  
  <p>&nbsp;模板名称测试:  
      <select   name="name">  
          <%  
  Connection   con=   connManager.getConnection("access");  
          if(con==null)  
          {  
          %>                          
            对不起,现在数据库忙,请稍后再试                                      
          <%  
            }  
          Statement   stat2   =   con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
          String   sql2="select   distinct   name   from   Template   ";  
                  ResultSet   rs2=stat2.executeQuery(sql2);  
                  while(rs2.next())  
                  {%>  
                                <option   value=<%=rs2.getString("name")%>><%=rs2.getString("name")%></option>  
                                <p>  
                  <%   }  
  rs2.close();  
  stat2.close();  
                  connManager.releaseConnection("access",con);  
                %>  
      </select>  
  </p>  
  </body>  
  </html>  
   
  运行出现如下错误:  
  type   Exception   report  
   
  message    
   
  description   The   server   encountered   an   internal   error   ()   that   prevented   it   from   fulfilling   this   request.  
   
  exception    
   
  javax.servlet.ServletException:   [Microsoft][ODBC   驱动程序   管理器]   非法的游标状态  
  org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:682)  
  org.apache.jsp.Metadata.website.admin.createdoc.create_005ftype_jsp._jspService(create_005ftype_jsp.java:106)  
  org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)  
  javax.servlet.http.HttpServlet.service(HttpServlet.java:856)  
  org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)  
  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)  
  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)  
  javax.servlet.http.HttpServlet.service(HttpServlet.java:856)  
   
   
  root   cause    
   
  java.sql.SQLException:   [Microsoft][ODBC   驱动程序   管理器]   非法的游标状态  
  sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)  
  sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)  
  sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)  
  sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5702)  
  sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:356)  
  sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:413)  
  org.apache.jsp.Metadata.website.admin.createdoc.create_005ftype_jsp._jspService(create_005ftype_jsp.java:86)  
  org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)  
  javax.servlet.http.HttpServlet.service(HttpServlet.java:856)  
  org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:320)  
  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)  
  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)  
  javax.servlet.http.HttpServlet.service(HttpServlet.java:856)  
   
   
  note   The   full   stack   trace   of   the   root   cause   is   available   in   the   Tomcat   logs.  
   
  请问这是什么原因?  
  以上把distinct   去掉是没有错误的。得到的是所有记录。  
  问题点数:0、回复次数:9Top

1 楼yeyu710(叶雨)回复于 2005-02-02 14:18:18 得分 0

不会吧,是不是access的原因啊??Top

2 楼JeromeLiu(烛光)回复于 2005-02-02 14:28:21 得分 0

晕了,奇怪。Top

3 楼singedcat(以夢為馬)回复于 2005-02-02 14:36:40 得分 0

upTop

4 楼cutelion(MADEinCNNC)回复于 2005-02-02 14:51:08 得分 0

[Microsoft][ODBC   驱动程序   管理器]   非法的游标状态    
  可能是在  
    <option   value=<%=rs2.getString("name")%>><%=rs2.getString("name")%></option>  
  中两次用了rs2.getString("name");  
  先赋值:  
    name=rs2.getString("name");再  
    <option   value=name><%=name   %></option>Top

5 楼romeo(豺神到)回复于 2005-02-02 15:00:53 得分 0

先把sql拿到数据库去执行一下,看看行不行,然后再拿到程序去运行,就知道哪里出错了Top

6 楼zode(德)回复于 2005-02-02 15:24:01 得分 0

select   distinct   name   from   Template     在数据库中是可以执行的啊Top

7 楼keyong19ryry(随风逐月)回复于 2005-02-02 15:49:22 得分 0

if(con==null)  
          {  
          %>                          
            对不起,现在数据库忙,请稍后再试                                      
          <%  
            }  
          Statement   stat2   =   con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
          String   sql2="select   distinct   name   from   Template   ";  
  ===================================================================  
  感觉你这段有问题,如果con==null的话,程序依然会继续执行,就会出错  
  另外   如果String   sql2="select   distinct   name   from   Template   ";不行,  
  试试String   sql2="select   distinct   name   as   name   from   Template   ";Top

8 楼romeo(豺神到)回复于 2005-02-02 16:06:25 得分 0

ResultSet   rs2=stat2.executeQuery(sql2);  
   
  然后System.out.println("size:"+rs2.getSize());  
   
  看看返回多少,(很久没用rs了,忘记了如何得到size的了,呵呵)Top

9 楼kevin_fang()回复于 2005-02-02 17:40:37 得分 0

试试   把ResultSet.TYPE_SCROLL_SENSITIVE   变成ResultSet.TYPE_FORWARD_ONLY   我本地类似的例子改成  
  这个就没有那个无效游标状态的异常了  
  似乎distinct查询   跟   scroll有点冲突?(猜测而已)Top

相关问题

  • SQL查询语句
  • Sql 查询语句
  • SQL查询语句
  • sql语句查询
  • sql查询语句
  • sql查询语句
  • SQL查询语句
  • Sql查询语句
  • sql查询语句
  • SQL查询语句——困惑

关键词

得分解答快速导航

  • 帖主:zode

相关链接

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

广告也精彩

反馈

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