Marco:
2017-04-18 15:45 GMT+02:00 Marco Vinicio Jimenez Rojas <[email protected]>:
> 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 ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda