- Este debate está vacío.
-
AutorEntradas
-
9 marzo, 2012 a las 9:58 pm #32007Jose FuglistalerParticipante
Buenas!!
Tengo un problema, cuando invoco a una función desde una clase Mxxxx – Método beforeSave( )
//Llamó a la función
CallableStatement call = DB.prepareCall(“{ ?=call nro_expediente(?) }”);
call.registerOutParameter(1, Types.INTEGER);
call.setInt(2, getAnio());
call.execute();
int valorRetorno = call.getInt(1);Produce el siguiente error:
Code:===========> MExpediente.beforeSave: [11]
org.postgresql.util.PSQLException: ERROR: la transacción es de sólo lectura
Where: sentencia SQL: «UPDATE libertya.m_expediente_nro SET nro = $1 WHERE anio = $2 »
PL/pgSQL function “nro_expediente” line 15 at SQL statement; State=25006; ErrorCode=0
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.postgresql.ds.jdbc23.AbstractJdbc23PooledConnection$StatementHandler.invoke(AbstractJdbc23PooledConnection.java:455)
at $Proxy3.execute(Unknown Source)
at org.openXpertya.model.MExpediente.beforeSave(MExpediente.java:54)
at org.openXpertya.model.PO.doBeforeSave(PO.java:3937)
at org.openXpertya.plugin.handlersPO.PluginPOBeforeSaveHandler.processActualAction(PluginPOBeforeSaveHandler.java:22)
at org.openXpertya.plugin.handlersPO.PluginPOHandler.processPO(PluginPOHandler.java:72)
at org.openXpertya.model.PO.handlePersistence(PO.java:3932)
at org.openXpertya.model.PO.save(PO.java:1765)
at org.openXpertya.model.MTable.dataSavePO(MTable.java:2296)
at org.openXpertya.model.MTable.dataSave(MTable.java:1541)
at org.openXpertya.model.MTab.dataSave(MTab.java:899)
at org.openXpertya.apps.APanel.cmd_save(APanel.java:1674)
at org.openXpertya.apps.APanel.actionPerformed(APanel.java:1504)
at org.openXpertya.apps.AppsAction.actionPerformed(AppsAction.java:292)La verdad ni idea que puede ser, pienso que puede ser algo sobre permisos?? La función es correcta.
Muchas Gracias!!
Saludos
josefu4 mayo, 2012 a las 8:37 pm #36425Federico CristinaSuperadministradorBuenas,
Disculpá la demora en la respuesta. Si te fijas en el código de algunas clases de Libertya en gral., para ejecutar una sentencia SQL de modificación se utiliza el método estático executeUpdate() de la clase DB:
Code:DB.executeUpdate(“UPDATE …”);Con esta invocación no deberías tener problemas.
Saludos,
Federico20 junio, 2012 a las 9:52 am #36483Jose FuglistalerParticipanteMuchas Gracias Federico!!
Lo había solucionado de la siguiente forma… le agregué una variable a la función ALTER FUNCTION funcionMMMMM SET transaction_read_only=’off’; de esa forma anduvo.
Saludos
josefu -
AutorEntradas
- Debes estar registrado para responder a este debate.