日期:2014-05-18  浏览次数:20749 次

是TOMCAT问题吗?
Statement   stmt=conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
sql= "SELECT   TOP   1   *   FROM   "+role;//
ResultSet   rs=stmt.executeQuery(sql);
while(rs.next())
{
myout.println( " <tr> ");
myout.println( " <td> "+rs.getString(1)+ " </td> ");
myout.println( " <td> "+rs.getString(2)+ " </td> ");
myout.println( " <td> "+time.format(rs.getDate( "riqi "))+ " </td> ");
        myout.println( " </tr> ");
               
}
stmt.close();


在JAVA程序中测试成工无报错
用JSP放在TOMCAT中能出结果(结果正常),但控制台报错:[ODBC]无效的游标状态
把TOP   1去掉,一切正常~~~~问题已经锁定在是TOP上,网上有相同情况,但都是没得到正确答案的~~

------解决方案--------------------
top 1 代表就1条记录

不用while循环了,rs.next直接跳到第一条记录

Statement stmt=conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
sql= "SELECT TOP 1 * FROM "+role;//
ResultSet rs=stmt.executeQuery(sql);
rs.next()

myout.println( " <tr> ");
myout.println( " <td> "+rs.getString(1)+ " </td> ");
myout.println( " <td> "+rs.getString(2)+ " </td> ");
myout.println( " <td> "+time.format(rs.getDate( "riqi "))+ " </td> ");
myout.println( " </tr> ");

stmt.close();

------解决方案--------------------
是你代码写的有问题,TOP 1 就是第一条记录,直接读就可以了,你把TOP 1 去