type Exception reportmessage 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.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.panjin.subitem_jsp._jspService(subitem_jsp.java:334)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.sql.SQLException: [Microsoft][ODBC ???? ???] ???????
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3862)
sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5561)
sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:338)
org.apache.jsp.panjin.subitem_jsp._jspService(subitem_jsp.java:290)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.看不明白是什么错误

解决方案 »

  1.   

    另外我的SQL语句如下:
    select datetime,src_addr,short_msg from(select * from (select datetime,src_addr,short_msg from prog_station where dst_addr='60601005' order by datetime desc) where rownum <= 150 minus select * from (select datetime,src_addr,short_msg from prog_station where dst_addr='60601005' order by datetime desc) where rownum <=120) order by datetime desc 语句本身没有问题,使之根据数字的不同有时候会选出来得纪录集为空,这个时候如果不把rs.getString(1)之类的部分注释掉就会出错
      

  2.   

    必须在前边加上
    if(rs!=null) {
    while(rs.next())}
      

  3.   

    我觉得你返回的不是记录集为空,而是返回的是NULL,所以你rs.next()的时候就会出错!
    加上个判断!
      

  4.   

    必须在前边加上
    if(rs!=null) {
    while(rs.next())}
    -----------------------------------
    本身while 语句已经有了判断,所以一剑飞雪说的if语句不需要加。
    我估计本身是你用的get方法不对,针对不同的类型一般最好用相应的方法,<%=rs.getString(1)%>语句本身就会将里面的转化为String,如对于你说的第一个值建议换为rs.getTimestamp(1)试试,因为你用的数据库和相应的驱动我不是很清楚,估计是 access是吗?再说一点,本身对于datetime之类的时间字段,用getString()也是可以得到它的值,但是有可能受不同的数据库和其驱动的限制,有可能出现类型不匹配的错误。
      

  5.   

    rs.last();
    int row=rs.getRow();
    rs.first();
    if (row>0)
    {
    }
      

  6.   

    rs.last();
    int count=rs.getRow();
    if(count>0)
    {
      sqlRst.absolute(1);
      while(!rs.isAfterLast())
      {
      ...
      }
    }
      

  7.   

    抱歉,我刚才太武断拉
    我刚才下去试验了一下,的确是需要判断,不过在这里出的问题不是这个,根据提示不是java.lang.NullPointerException异常,建议试一下我上面说的那个方法,最后还是对于“一剑飞雪”表示道歉:)
      

  8.   

    feishao45(飞少)看得出为人还不错