🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #389

Problema con ResultSet en JDBC

#389
From: Alejandro
Date: Thu, 07 Jun 2007 00:24
106 lines
4146 bytes
Hola,

Estoy haciendo una practica de la universidad y me gustaria que me 
echaseis una mano con un peque�o problema que tengo..

La cuesti�n es que intento hacer lo siguiente:

Tengo un JDialog donde recibo objetos como el ModeloTabla (vease c�digo 
de ModeloTabla m�s abajo) que nos dejaron hecho:

C�digo:

public class VentanaResultados extends JDialog {
     [...]
     JScrollPane ScrollPane = new JScrollPane();
     JTable tabla = new JTable();
     ModeloTabla modelo;
     JButton BTBorrar = new JButton();
     [...]
     public VentanaResultados(ModeloTabla m,String cap,boolean 
mostrarBotones) {
         try {
             this.modelo = m;
             tabla = new JTable(modelo);
             ScrollPane = new JScrollPane(tabla);
             this.LBText.setText(cap);
         } catch (Exception ex) {
             ex.printStackTrace();
         }
     }
[...]
}


Por otra parte, en esa misma clase, cuando pulso sobre el boton borrar, 
ejecuto esto:

C�digo:

     public void BTBorrar_actionPerformed(ActionEvent e) {
         if (tabla.getSelectedRow() != -1) {
          //Compruebo que seleccionaron tupla
             Result r = modelo.deleteRow(tabla.getSelectedRow());
             //Intento borrarla..
             if (r.getResult()) {
                 JOptionPane.showMessageDialog(this,"Tupla 
borrada","Tupla borrada",JOptionPane.INFORMATION_MESSAGE);
             }
             else {
                 JOptionPane.showMessageDialog(this,"Error borrando la 
tupla: " + r.getMsg(),"Error",JOptionPane.ERROR_MESSAGE);
             }
         }
     }


Y finalmente, en ModeloTabla, a�ad� este m�todo:

C�digo:

    public Result deleteRow(int r) {
        try {
            rs.first();
            //Me pongo al principio del ResultSet
            while (rs.getRow() != r) {
                rs.next();
            //Hasta no llegar a la tupla deseada, avanzo.
            }
            //Cuando llegue la borro y hago el updateRow que en teoria
            //actualiza la bd.
            rs.deleteRow();
            rs.updateRow();
        }
        catch (Exception e) {
            e.printStackTrace();
            return new Result(false,e.getMessage());
        }
        return new Result(true,null);
    }


Donde 'rs' es el ResultSet que usa ModeloTabla (El resto, est� igual).

ModeloTabla.java: http://rafb.net/p/hdgIfo99.html

La clase Result es una clase que cree yo auxiliar que no tiene 
importancia para este caso.

El problema es que, al ejecutar eso, obtengo este error:

Cita:

java.sql.SQLException: Operaci�n no v�lida para el juego de resultados 
de s�lo reenv�o : first


La cual aunque busqu� algo de informaci�n no acabo de entender que 
significa.

Como podreis imaginar lo que pretendo es desde la tabla poder borrar 
tuplas del ResultSet y que al actualizarlo (updateRow()) actualice el 
contenido en la base de datos.

�Alguna idea de cual es el problema? �Soluciones? �Alternativas?

Gracias, un saludo.
Technical Details
Message-ID: <4667501c_1@filemon2.isp.telecable.es>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!club-internet.fr!feedme-small.clubint.net!newsfeed.freenet.de!85.12.40.130.MISMATCH!xlned.com!feeder1.xlned.com!hwmnpeer03.ams!news.highwinds-media.com!newsfeed.telecable.es!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,3c7dc0a3c946ac67,start
X-Google-Attributes: gid1116f3,public,usenet
X-Google-Language: SPANISH,ASCII
Date: Thu, 07 Jun 2007 02:24:02 +0200
From: Alejandro <none@none.es>
User-Agent: Thunderbird 1.5.0.12 (Windows/20070509)
MIME-Version: 1.0
Newsgroups: es.comp.lenguajes.java
Subject: Problema con ResultSet en JDBC
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 000747-3, 06/06/2007), Outbound message
X-Antivirus-Status: Clean
NNTP-Posting-Host: 81.9.180.206
Message-ID: <4667501c_1@filemon2.isp.telecable.es>
X-Trace: filemon2.isp.telecable.es 1181175836 81.9.180.206 (7 Jun 2007 02:23:56 +0200)
Organization: TeleCable, S.A.U.
Lines: 106
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!club-internet.fr!feedme-small.clubint.net!newsfeed.freenet.de!85.12.40.130.MISMATCH!xlned.com!feeder1.xlned.com!hwmnpeer03.ams!news.highwinds-media.com!newsfeed.telecable.es!not-for-mail