Article View: es.comp.lenguajes.java
Article #389Problema con ResultSet en JDBC
From: Alejandro
Date: Thu, 07 Jun 2007 00:24
Date: Thu, 07 Jun 2007 00:24
106 lines
4146 bytes
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-mailShow 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