为什么查询语句select TOP 5 * from CollegeNotice报这样的错:
java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态(只要记录数少于5就没错一旦记录数大于5就报错 )
数据库是ACCESS 
谢谢……

解决方案 »

  1.   

    奇怪啊
    select top 5 * form table_name 这条语句是正确的
    以前自己经常用,没有遇到这种情况up
      

  2.   

    sorry
     form改为from.
      

  3.   

    2楼可能误解我的意思了,怪我表达能力差,小学语文没学好
    我的意思是:当表CollegeNotice里的记录数大于5是就报错
      

  4.   

    错误的地方找到了,我在建立stamtement的时候是这样建立的:
    conn.prepareStatement("select TOP 5 * from CollegeNotice",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 
    将它改成conn.prepareStatement("select TOP 5 * from CollegeNotice");就好了
    但是如果这样做的话,分页就做不了了,因为记录集不能回滚啊。这句是让记录集产生回滚的:ResultSet.TYPE_SCROLL_INSENSITIVE
    怎么办才好?大虾们指点指点,谢谢……
      

  5.   

    我現在也遇到這樣的問題了
    數據庫有三條記錄 
    我用了top 3就正确.用了 top 1  或  top 2就錯.
    那我想找一條記錄 ,怎麼寫啊?
      

  6.   

    <%
    //读出记录
    ResultSet rs;
    String sql=null;
    int a=1;
    rs=conn.executeQuery("select top 1 * from co_info where what='q' order by in_date desc");

    //rs.last();
    //int rowcount=rs.getRow();
    //out.println(rowcount);
    //out.close();
    //if (rowcount>a)
    //{
    out.println(a);
    while (rs.next())
    {
    String info=rs.getString("f_info");
    String image=rs.getString("image");%>
        <tr> 
                          <td>
      <%
      if(rs.getString("image")!=null)
      {
      %>
                      <a href="../uploadpic/<%=image%>" target="_blank"><img src="../uploadpic/<%=image%>" alt="-放大查看-" width="244" height="163" border="0" align="left"></a> 
                     <%
       }
       info=invert.toHTMLString(info);
       %>
       <%=info%>
      </td>
                        </tr>
    <%
    }
    //}
    %>=================================================
    現在有三條數據.
    top 1, top 2 都不對.
    只能是top3 或 select * from請問jsp+access不能用top 的嗎?
    那我想取一條數據應該怎麼樣做法?
      

  7.   

    你既然用ACCESS这东西,有必要去用JSP开发??
    ASP不容易得多么~
      

  8.   

    如果用asp開發我就不用愁這麼多東西.
    我本來是jsp+sql的.後來服務器上面的系統是繁體2003商業版.裝不了sql.(什麼簡體中文,英文,繁體)都裝過.裝不上.所以才改了access.現在我想取一條數據就出錯了.就是說用top不行.我該怎麼改法?
    我對JSP不是很熟.請大家指點一下啦.謝謝.
      

  9.   

    select max(id) as id from co_info order by id desc這樣取也不行的.
    只能
    select * from co_info order by id desc
      

  10.   

    <%
    String sql="select top 1 * from news where type=53 order by newsid desc";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next())
    {
    %>
                    <tr bgcolor="#FFFFFF">
                      <td width="58%" height="20"  class="xxux"><a href="newsdetail.jsp?id=<%=rs.getInt(1)%>" target="_blank" ><%=rs.getString(2)%></a></td>
          <td width="42%" class="jj wzls xxux"><%=rs.getString(4)%></td>
            </tr>
                    <%
    }%>
    我这个也不能用的
      

  11.   

    呵呵,我找到了,大家看看!
    -----------------------
    sql server : select top 10 * from  xxx
    my sql     : select * from xxx limit 0,10 
    informix   : select first 10 * from table_name------------------------------<%
    String sql="select top 1 * from news where type=53 order by newsid desc limit 0,1";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next())
    {
    %>
                    <tr bgcolor="#FFFFFF">
                      <td width="58%" height="20"  class="xxux"><a href="newsdetail.jsp?id=<%=rs.getInt(1)%>" target="_blank" ><%=rs.getString(2)%></a></td>
          <td width="42%" class="jj wzls xxux"><%=rs.getString(4)%></td>
            </tr>
                    <%
    }%>-----------------------------------------select top 1 * from news where type=53 order by newsid desc limit 0,1
    这是我写的!可以用了!