Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con executeUpdate

Estas en el tema de Problema con executeUpdate en el foro de Java en Foros del Web. bien resulta que modifico mi base de datos desde java como quiero, al final ejecuto un executeUpdate pasandole un string, pero no se que string ...
  #1 (permalink)  
Antiguo 30/03/2008, 04:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 5 meses
Puntos: 2
Problema con executeUpdate

bien resulta que modifico mi base de datos desde java como quiero, al final ejecuto un executeUpdate pasandole un string, pero no se que string le tengo que pasar, actualmente le estoy pasando "SELECT * FROM usuarios" y me funciona, me modifica la BD como yo quiero pero al final me lanza una excepcion del tipo:

Exception in thread "main" java.sql.SQLException: No row count was produced

Sabe alguien donde esta el error?
  #2 (permalink)  
Antiguo 30/03/2008, 10:01
 
Fecha de Ingreso: octubre-2006
Mensajes: 51
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Problema con executeUpdate

executeUpdate ---> INSERT, UPDATE, DELETE
executeQuery ---> SELECT
  #3 (permalink)  
Antiguo 31/03/2008, 13:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: Problema con executeUpdate

si pero a ver, el error me lo da en la siguiente linea:

stm.executeUpdate("SELECT * FROM usuarios");

y la excepcion es la siguiente:

Exception in thread "main" java.sql.SQLException: No row count was produced
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unkn own Source)
at test.TestQuinielas.main(TestQuinielas.java:133)

el executeUpdate segun tengo entendido lo tengo que hacer para que los cambios se vean reflejados en la BD, pero me da esa excepcion en esa linea y no se porque...

Que es exactamente lo que falla?
  #4 (permalink)  
Antiguo 31/03/2008, 14:45
 
Fecha de Ingreso: mayo-2007
Mensajes: 19
Antigüedad: 17 años
Puntos: 1
Re: Problema con executeUpdate

Si quieres cambiar algo en la BD entonces, ¿para qué haces un SELECT?

El executeUpdate te devuelve un numero entero, si no recuerdo mal... Y por eso creo que te devuelve el "No row count was produced", no cuenta nada, porque con SELECT no cambias nada.
  #5 (permalink)  
Antiguo 01/04/2008, 00:16
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema con executeUpdate

Cita:
Iniciado por JuaNiNNaio Ver Mensaje
el executeUpdate segun tengo entendido lo tengo que hacer para que los cambios se vean reflejados en la BD, pero me da esa excepcion en esa linea y no se porque...

Que es exactamente lo que falla?
Para actualizar la BDD en SQL, como ya te comentan, lo que has de usar no es un SELECT, es un INSERT o UPDATE o DELETE segun lo que quieras hacer. SELECT, como su nombre indica, solo selecciona.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #6 (permalink)  
Antiguo 01/04/2008, 01:29
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: Problema con executeUpdate

A ver pero es que yo ya he hecho todas las modificaciones en la tabla con los metodos java, tales como updateRow(), updateString()... etc, los cambios ya los hice pero tengo que poner ese executeUpdate para que me los refleje una vez terminado el programa, el problema es que no se que ponerle dentro.

A ver si me explico, al yo llamar al metodo executeUpdate ya hice todos los cambios en la tabla anteriormente, solo lo llamo para que los refleje una vez hechos, lo que no se es que String exactamente le tengo que poner.
  #7 (permalink)  
Antiguo 01/04/2008, 03:13
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema con executeUpdate

Repito. ¿Si ya has actualizado la tabla, para que necesitas un executeUpdate? Para obtener los datos actualizados has de hacer un select, y para eso se usa executeQuery.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #8 (permalink)  
Antiguo 01/04/2008, 03:59
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: Problema con executeUpdate

No necesito obtener los datos de la tabla, necesito que se reflejen en ella, si no hago ese executeUpdate al final no se reflejan. Mira mi metodo para registrar un usuario es el siguente:

Código:
public void registraUsuario(ResultSet rs) throws IOException, SQLException{
		EntradaEstandar e = new TecladoEstandar();
		rs.last();
		int i = rs.getInt("numUsuario");
		i++;
		rs.moveToInsertRow();
		System.out.println("\nIntroduzca su mail:");
		String mail = e.leerCadena();
		System.out.println("\nIntroduzca su pass:");
		String pass = e.leerCadena();
		rs.updateInt("numUsuario", i);
		rs.updateString("mail", mail);
		rs.updateString("pass", pass);
		rs.insertRow();
		rs.updateRow();
		
		System.out.println(".: Usuario registrado correctamente:.\n");
	}
y luego al salir del metodo es cuando hago el executeUpdate.
  #9 (permalink)  
Antiguo 01/04/2008, 04:20
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema con executeUpdate

¿Y por que no le pides simplemente los datos y luego haces una sentencia update? Lo de actualizar resultsets mientras los recorres solo funciona en algunas BDD y con algunas BDD.

Igualmente, si quieres hacerlo así, no te puedo ayudar mucho por que no lo uso pero te convendria leer el API. He aqui lo que dice de updateRow():
Cita:
Updates the underlying database with the new contents of the current row of this ResultSet object. This method cannot be called when the cursor is on the insert row.
S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #10 (permalink)  
Antiguo 02/04/2008, 03:17
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: Problema con executeUpdate

Cita:
Iniciado por GreenEyed Ver Mensaje
¿Y por que no le pides simplemente los datos y luego haces una sentencia update? Lo de actualizar resultsets mientras los recorres solo funciona en algunas BDD y con algunas BDD.

Igualmente, si quieres hacerlo así, no te puedo ayudar mucho por que no lo uso pero te convendria leer el API. He aqui lo que dice de updateRow():


S!
Ajam! Muchas gracias tio, creo que esto soluciona mi problema. Por cierto, con estas instrucciones podria crear mi BD en MySQL en lugar de ACCESS? serian las mismas instrucciones?
  #11 (permalink)  
Antiguo 02/04/2008, 04:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Problema con executeUpdate

Si usas SQL estandar si, solo cambiando la cadena de conexion y cargando el driver adecuado funcionarian igual tanto en una como en otra.

Con funciones no estandar me refiero que si mySQL tiene la clausula LIMIT que no esta en Access y la usas en tu SELECT, entonces en Access te dara un error.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #12 (permalink)  
Antiguo 02/04/2008, 04:38
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 5 meses
Puntos: 2
Re: Problema con executeUpdate

ajam, todo claro. Pues muchas gracias tio ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:54.