Java - Insert que no inserta nada ni da error

 
Vista:

Insert que no inserta nada ni da error

Publicado por Lu (8 intervenciones) el 13/02/2006 18:34:34
Mismo mensaje que el foro de JSP, pasa que no se a que se debe el problema.
-------------------------------------------------------------------------------------------------------------
Tengo un problema que hace dias me esta volviendo loca.

El siguiente codigo:

String sql = " insert into shp_reportrqt_tbl (USRID, RPTFILE, REQUESTDTTM, SQLFILTER, DATEFROM, DATETO, RPTSTATUS) "+
" values ("+usrid +" , "+rptfile +" , "+ requestdttm+" , "+ sqlfilter+" , "+datefrom +" , "+dateto +" , "+rptstatus +" ) ";

try{ Connection conn = getConnection();
Statement s = conn.createStatement();
System.out.println("Listo para ejecutar 1");
System.out.println(sql);
s.execute(sql);
System.out.println("Ejecute sql");
s.close();
conn.commit();
}catch(Exception ex){ex.printStackTrace();}

Se supone que inserta un registro en esa tabla (no se ven los datos de conexion porque los esta sacando de un pool).
No tira ningun error pero no inserta nada. Si ejecuto el mismo sql desde el Aqua u otro analizador de consultas anda perfecto.
La base es DB2. Se traba en la linea que dice s.execute(sql); es decir, nunca imprime el texto "Ejecute sql". No se va por el catch tampoco, no tira ninguna exception.
Algo mas raro todavia. A mi en mi maquina me funciona bien, el problema ocurre en el entorno donde debo implementarlo. Tengo otro insert que esta exactamente igual y si funciona (es a otra tabla).

Hice pruebas campo por campo, poniendo campos fijos en lugar de las variables, o sea todo igual pero con este sql:

sql = " insert into shp_reportrqt_tbl (USRID, RPTFILE, REQUESTDTTM, SQLFILTER, DATEFROM, DATETO, RPTSTATUS) "+
" values ('USR', 'REP' , '2006-01-06 11:45:20' , 'Filtro insertado a mano',null,null , null) ";

Ese lo inserta bien, a partir de ahi fui haciendo distintos inserts cambiando en cada uno un campo fijo por la variable correspondiente.
Asi descubri que el unico insert que no se hizo fue el que tenia todo fijo y como campo variable "dateto ". Que puede tener de particular este campo???. El "datefrom" se inserta bien y las fechas son identicas, o sea que no es un problema con el formato de la fecha. Asi se ven ambas en el sistema:

Fecha FROM: '02/03/2006'
Fecha TO: '03/03/2006'

En la tabla ambos son campos de tipo DATE.

Por favor alguien tireme una idea de que puede ser esto!!! ya no se que mas probar...

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Insert que no inserta nada ni da error

Publicado por Yamil Bracho (2315 intervenciones) el 14/02/2006 20:34:12
Coloca el autocommit en false

con.setAutoCommit(false)

y le debes colocar el commit a tu transaccion o bien colocalo en true
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Insert que no inserta nada ni da error

Publicado por Lu (8 intervenciones) el 15/02/2006 12:32:20
Lo intente, pero no puedo hacer el comit porque nunca llega a esa linea...

try{ Connection conn = getConnection();
Statement s = conn.createStatement();
System.out.println("Listo para ejecutar 2");
System.out.println(sql);
s.execute(sql);
System.out.println("Ejecute sql con todo fijo menos date to");
s.close();
conn.commit();
}catch(Exception ex){ex.printStackTrace();}

Esto se sale (no por el catch, sino que sigue de largo) cuando llega a la linea s.execute(sql);

Lo que no entiendo es como esto si se inserta:

sql = " insert into shp_reportrqt_tbl (USRID, RPTFILE, REQUESTDTTM, SQLFILTER, DATEFROM, DATETO, RPTSTATUS) "+
" values ('USR', 'REP' , '2006-01-06 11:45:20' , 'Filtro insertado a mano','02/02/2006' ,'03/02/2006' , null) ";

y esto no:

sql = " insert into shp_reportrqt_tbl (USRID, RPTFILE, REQUESTDTTM, SQLFILTER, DATEFROM, DATETO, RPTSTATUS) "+
" values ('USR', 'REP' , '2006-01-06 11:45:20' , 'Filtro insertado a mano menos dateto','02/02/2006' ,"+dateto+", null) ";

siendo que dateto = '03/02/2006' ...no tiene sentido!?!?!?!?!

Gracias de todas formas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar