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

Problema con consulta sql

Estas en el tema de Problema con consulta sql en el foro de Java en Foros del Web. Hola! Tengo un problema con la siguiente sentencia sql: stmt.executeUpdate("UPDATE TB_Display SET Text='"+text+"' WHERE Name='" + display+"'"); Me dan los siguientes errores: java.sql.SQLException: [Microsoft][Controlador ODBC ...
  #1 (permalink)  
Antiguo 04/05/2009, 09:52
 
Fecha de Ingreso: julio-2008
Mensajes: 19
Antigüedad: 15 años, 9 meses
Puntos: 0
Problema con consulta sql

Hola!

Tengo un problema con la siguiente sentencia sql:


stmt.executeUpdate("UPDATE TB_Display SET Text='"+text+"' WHERE Name='" + display+"'");


Me dan los siguientes errores:

java.sql.SQLException: [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la instrucción UPDATE.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc .java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java :7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java :3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcSt atement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Jdbc OdbcStatement.java:288)


Si alguien me puede ayudar se lo agradecería.

Gracias
  #2 (permalink)  
Antiguo 04/05/2009, 13:17
(Desactivado)
 
Fecha de Ingreso: abril-2009
Mensajes: 113
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con consulta sql

No sé demasiado de esto aún pero lo que yo haria:

- sacar por pantalla (imprimir por pantalla) la sentencia update para ver que es realmente lo que le pasa.... no veo muy claro lo de las comillas, pero ya te digo que es que yo soy novato. Creo que deberia imprimir las comillas simples el valor de text y de display. Comprueba que lo hace.
- probar en acces esa sentencia update por si tambien te dá error, con sus comillas simples y sin punto y coma al final de la sentencia.

Con una base tan sencillita como HSQLDB este método me ha funcionado bien.
Ten en cuenta de que Access utiliza un SQL un poco raro yo monté postgres para los ejercicios de SQL de segundo.

Un saludo
  #3 (permalink)  
Antiguo 04/05/2009, 14:48
 
Fecha de Ingreso: julio-2008
Mensajes: 19
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con consulta sql

Hola,

El caso es que no me deja imprimir la consulta ya que al ejecutarla da error. No se si están mal las comillas o que pasa
  #4 (permalink)  
Antiguo 04/05/2009, 15:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 115
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Problema con consulta sql

Como que no te deja? Si intentas imprimirla despues de ejecutarla, normal, pero y antes?
Haz algo asi

String consultaSQL = "UPDATE TB_Display SET Text='"+text+"' WHERE Name='" + display+"'";
System.out.println(consultaSQL);
stmt.executeUpdate(consultaSQL);

Eso te tiene que dejar hacerlo, y si no el problema viene de antes.
  #5 (permalink)  
Antiguo 04/05/2009, 15:11
 
Fecha de Ingreso: julio-2008
Mensajes: 19
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con consulta sql

Los parámetros text y display llegan a la consulta perfectamente y aún así me sigue dando el mismo error. Puesto que tanto la tabla como los campos están bien nombrados en la sentencia sql, no se cual puede ser el fallo.
  #6 (permalink)  
Antiguo 04/05/2009, 16:11
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Problema con consulta sql

Haz caso a lo que te dice jesuscoro. Basta con que tengas una ' en text o display y tu sentencia SQL estará mal construida.

Montar sentencias SQL mediante concatenación de cadenas para los valores de los parámetros es una mala mala idea y debería evitarse siempre.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #7 (permalink)  
Antiguo 04/05/2009, 17:17
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con consulta sql

tiene razon GreenEyed, para eso existen los preparedStatement
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 06:12.