Marco:

2017-04-18 15:45 GMT+02:00 Marco Vinicio Jimenez Rojas <vinici...@gmail.com>:
> Disculpa con lo del correo, gmail me lo oculta y entonces no me doy cuenta.

Sin problema. En otro orden de cosas, acuerdate que el reply-to de las
listas de postgres, por motivos historicos, apunta al emisor, con lo
que hay que darle al reply-all en google ( no se como saldra si lo
tienes en castellano, yo lo uso en ingles, la flecha curvada doble ).
He reañadido la lista en copia y quoteare de mas para recuperar el
contexto.

> Tengo dos tablas, veamoslo como un encabezado y un detalle donde el detalle
> una relación N-n, entonces, entonces quiero hacer todos los insert de manera
> completa y por eso uso la transaccion.

Lo del master-detail lo habia pillado. Lo de la transaccion es
innecesario, ya que tu query es un solo comando, y eso va siempre en
una sola transaccion ( puede haber varios comandos por transaccion,
pero no al reves ).

> en Java uso el JDBC, con un queryupdate

AHI esta tu problema. Un insert-returning se comporta, como te dije en
mis mensajes anteriores, como un select.

> consultaSQL_TJ = conexionTJ.createStatement();
> consultaSQL_TJ.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
> ResultSet rs = consultaSQL_TJ.getGeneratedKeys();
> if(rs.next())
> {
>    res = rs.getInt(1);
> }

Este trozo es para cuando haces un insert SIN RETURNING y quieres que
te de, p.e., los valores de los serial que no has puesto explicitos (
Yo personalmente no lo recomiendo, el returning te da mas control ).

Lo que tienes que hacer es cambiar a hacer un execute sin mas, si mi
jdbc no me falla no es mas que hacer:

consultaSQL_TJ = conexionTJ.createStatement();
ResultSet rs =consultaSQL_TJ.executeQuery(sql);
if(rs.next())
...

Y pon los nombres de columnas que insertas ( o, si los has puesto,
copia los queries que usas, no los rehagas ).

Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a