Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/12/2007, 08:41
angel3d3
 
Fecha de Ingreso: noviembre-2007
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
problema con un preparedStatement

Buen día, tengo un problema con el siguiente código:
Las sentencias SQL
.- strSQL = "INSERT INTO BANORTE.jvote_preguntas(pregunta,estatus,fecha_ult _modif) VALUES(?,?,?)";
.- strSQL2 = "SELECT pregunta_id FROM BANORTE.jvote_preguntas WHERE pregunta = ? AND fecha_ult_modif = ?";
.- strSQL3 = "INSERT INTO BANORTE.Respuestas(pregunta_id,opcion,respuesta) VALUES (?,?,?)";

El Codigo:
objFecha = new Date();
long lngTiempo = objFecha.getTime();
objTimeStamp = new java.sql.Timestamp(lngTiempo);

objCon = Conexion.makeConnection();
try {
//INSERTA PREGUNTA DE LA ENCUESTA
System.out.println("objTimeStamp = " + objTimeStamp.toString());
objPsm = objCon.prepareStatement(strSQL);
//objPsm.setInt(intIndice,0);
objPsm.setString(intIndice,strPregunta);
objPsm.setString(++intIndice,objEncuestaBean.getSt rStatus());
objPsm.setTimestamp(++intIndice,objTimeStamp);
intResultado = objPsm.executeUpdate();

//OBTIENE EL ID DE LA PREGUNTA
intIndice = 1;
System.out.println("objTimeStamp = " + objTimeStamp.toString());
objPsm = null;
objPsm = objCon.prepareStatement(strSQL2);
System.out.println("objPsm = " + objPsm.toString());
objPsm.setString(intIndice,strPregunta);
objPsm.setTimestamp(++intIndice,objTimeStamp);
/*intResultado = objPsm.executeUpdate();*/
objRs = objPsm.executeQuery();
System.out.println("objRs.next() = " + objRs.next());
while(objRs.next()){
intPreguntaId = objRs.getInt(1);
}

//INSERTA LAS OPCIONES DE LA PREGUNTA
Iterator objIterador = arrayOpciones.iterator();
objPsm = objCon.prepareStatement(strSQL3);
while(objIterador.hasNext()){
intIndice = 1;
objOpcResBean = (OpcionRespuestaBean)objIterador.next();
objPsm.setInt(intIndice,intPreguntaId);
objPsm.setString(++intIndice,objOpcResBean.getStrO pcion());
System.out.println("objOpcResBean = " + objOpcResBean.getStrOpcion());
objPsm.setInt(++intIndice,objOpcResBean.getIntResp uesta());
intResultado = objPsm.executeUpdate();
System.out.println("intResultado = " + intResultado);
}
Tengo 2 tablas Preguntas (padre) y respuestas (hijo) y el codigo anterior petende insertar la pregunta con sus opciones. La insercion funciona correctamente, pero cuando intento obtener el ID de la pregunta el select no trae nada en absoluto. por lo que las opciones se guardan con n Id de pregunta 0. Si alguien puede ayudarme y decir como puedo resolver este problemita lo agradezco. Ya he probado haciendo commit, cerrando la conexion y volviendola a crear y nada. Que puedo hacer?

Gracias de antemano por la ayuda

se me olvidó algo importante, estoy trabajando con java 1.5, jdbc14.jar, oracle 10g y apache tomacat 5.5

Última edición por angel3d3; 11/12/2007 a las 08:46