Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Error al hacer una consulta INSERT

Estas en el tema de Error al hacer una consulta INSERT en el foro de Bases de Datos General en Foros del Web. Hola a todos, ando haciendo una encuesta y me da fallo al recoger las respuestas en la base de datos, lo curioso es que inserta ...
  #1 (permalink)  
Antiguo 20/01/2012, 12:10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 72
Antigüedad: 13 años, 5 meses
Puntos: 1
Error al hacer una consulta INSERT

Hola a todos, ando haciendo una encuesta y me da fallo al recoger las respuestas en la base de datos, lo curioso es que inserta las respuestas en la base de datos, pero también da fallo, os pongo los fallos que da:

Message: Illegal operation on empty result set
SQLState: S1000
ErrorCode: 0
Message: Illegal operation on empty result set
SQLState: S1000
ErrorCode: 0
Message: Illegal operation on empty result set
SQLState: S1000
ErrorCode: 0
Message: null, message from server: "Column 'preguntaOID' cannot be null"
SQLState: 23000
ErrorCode: 1048



Me parece de lo más raro, ya que inserta los datos y da fallo.


Aquí la consulta:
Código JAVA:
Ver original
  1. public void insertRespuesta(Respuesta r) {
  2.                 String sql = "INSERT INTO respuesta (OID, preguntaOID, opcionOID) VALUES (?, ?, ?) ";
  3.                 PreparedStatement stmt = null;
  4.  
  5.                 try {
  6.                     stmt = conn.prepareStatement(sql);
  7.  
  8.                         stmt.clearParameters();
  9.                         stmt.setString(1, UIDGenerator.getInstance().getKey());
  10.                         String oidp = pcdao.selectPreguntaOID(rc.getPregunta().getIdPregunta());
  11.                         stmt.setString(2, oidp);
  12.                         String ocp = ocdao.selectOpcionOID(conn, rc.getOpcion().getIdOpcion());
  13.                         stmt.setString(3, ocp);
  14.                         stmt.executeUpdate();
  15.  
  16.                 } catch (SQLException e) {
  17.                     System.out.println("Message: " + e.getMessage());
  18.                     System.out.println("SQLState: " + e.getSQLState());
  19.                     System.out.println("ErrorCode: " + e.getErrorCode());
  20.                 } finally {
  21.                     try {
  22.                         if (stmt != null) {
  23.                             stmt.close();
  24.                         }
  25.                     } catch (SQLException e) {
  26.                     }
  27.                 }
  28.     }





¿Qué está fallando?
  #2 (permalink)  
Antiguo 21/01/2012, 13:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error al hacer una consulta INSERT

Tu problema no se está dando a nivel de SQL, sino de programación en Java: El valor de preguntaOID le está llegando a la base como NULL. El por qué sucede, no es por el SQL, sino por el Java relacionado con la sentencia creada.
Verifica si esa es la forma correcta de cargar los parámetros.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/01/2012, 17:28
 
Fecha de Ingreso: noviembre-2010
Mensajes: 72
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Error al hacer una consulta INSERT

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Tu problema no se está dando a nivel de SQL, sino de programación en Java: El valor de preguntaOID le está llegando a la base como NULL. El por qué sucede, no es por el SQL, sino por el Java relacionado con la sentencia creada.
Verifica si esa es la forma correcta de cargar los parámetros.
Muchas gracias, sí eso parece que será en java.

Saludos.

Etiquetas: insert, sql
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 18:32.