您的位置:程序门 -> java -> web 开发



jdb使用resultset的deleterow()带来的困惑!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


jdb使用resultset的deleterow()带来的困惑!
发表于:2007-05-20 20:49:14 楼主
代码片断:
stmt=conn.createstatement(resultset.type_forward_only,resultset.concur_updatable);
string   sqlsubstr   =   "select   *   from   street   where   areaid= "   +   1;
rs=stmt.EXECutequery(sqlsubstr);
try{
        while(rs.next()){
            rs.deleterow();
        }
}catch(exception   e){
    system.out.print(e.tostring());
}
为什么不能完全清除areaid等于1的记录,总是隔一个删除一个.请大家帮一下忙?

别使用sql语句和使用记录集哪一个效率更高呢?
发表于:2007-05-20 20:58:311楼 得分:0
while(rs.next()){
rs.deleterow();
}
=============
这样工作的:删除当前行,指针移到下一行,再rs.next()指针移到下下一行,于是错过了一行

sql语句效率高
发表于:2007-05-20 21:00:342楼 得分:0
但是我使用这样的语句也不行啊:
rs.next
try{
        while(!rs.islastafter){
            rs.deleterow();
            rs.next;
        }
}catch(exception   e){
    system.out.print(e.tostring());
}
发表于:2007-05-20 21:01:203楼 得分:0
不不应该是这样:
rs.next;
try{
        while(!rs.islastafter){
            rs.deleterow();
        }
}catch(exception   e){
    system.out.print(e.tostring());
}
发表于:2007-05-20 21:02:264楼 得分:0
当然使用sql语句效率高……

rs.deleterow()删除当前行,比如说有3条记录,编号1,2,3

rs.next(),指针指向第一行,即记录1
rs.deleterow(),删除记录1
rs.next(),指针指向第二行,即记录3
…………
…………
最后记录2的记录仍然存在……
发表于:2007-05-20 21:03:565楼 得分:0
暗长空:
那么如果用rs如果才能实现呢.谢谢!
发表于:2007-05-20 21:11:096楼 得分:0
那楼上的意思是我用如下的代码可以实现:
rs=stmt.EXECutequery(sqlsubstr);
rs.next;
try{
        while(!rs.isafterlast()){
            rs.deleterow();
        }
}catch(exception   e){
    system.out.print(e.tostring());
}


你的意思是rs.deleterow();在删除第一个记录会,自动指向了第二行,既第二条记录是吗?
但是我试了之后,只删除了第一条记录.不知道这是怎么回事呢?
发表于:2007-05-20 21:41:397楼 得分:0
很奇怪,这样试试:
stmt=conn.createstatement(resultset.type_scroll_sensitive,resultset.concur_updatable);
...
while   (rs.first())   {
rs.deleterow();
}
发表于:2007-05-20 22:53:018楼 得分:0
好像不行啊.


快速检索

最新资讯
热门点击