JSP 游标错误
我写了一个jsp通过JDBC访问sqlserver的程序,目标是检索出10条记录并循环显示,但是只要一循环或者执行rs.last()这样的命令,就提示:
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error reading data from static cursor cache 好象游标不能移动。下面是我的程序,很短的,帮忙看看!
<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");
String url= "jdbc:microsoft:sqlserver://159.226.141.247:1433;DatabaseName=conference ";
String user= "sa ";
String password= "xuyuan7922 ";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select top 10 * from confdetail ";
ResultSet rs=stmt.executeQuery(sql);
rs.next(); (或者rs.last())
out.print( "一共检索到 ");
out.print(rs.getRow());
out.print( "条记录 ");
if(rs.next()) (这里改成while也会出错)
{
out.print( " <p> </p> ");
out.print(rs.getString( "detailname "));
out.print( " <p> </p> ");
out.print(rs.getString( "detaillink "));
out.print( " <p> </p> ");
}
%>
------解决方案--------------------设置成这样呢?stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
------解决方案--------------------api里讲得很详细
static int TYPE_SCROLL_INSENSITIVE
该常量指示可滚动但通常不受其他的更改影响的 ResultSet 对象的类型。
static int TYPE_SCROLL_SENSITIVE
该常量指示可滚动并且通常受其他的更改影响的 ResultSet 对象的类型。
至于第二个参数设置成ResultSet.CONCUR_UPDATABLE可不可以你可以自己试试,我手头没有mssql