[Gvsig_desarrolladores] Actualizar

Antonio Araque antonio.araque en e-sig.es
Jue Dic 9 12:53:12 CET 2010


Buenas Chema, 

Gracias por tu respuesta, he creado una conexión directa, dentro del módulo
pero sigue sin realizar los cambios en la base de datos. He probado el
código con una conexión a BBDD MySQL y funciona perfectamente :S. 

 

Pongo el código de lo que he hecho, por si alguien ve algo raro:

 

 

                    String dbURL = "jdbc:postgresql://xxxxxxxx";

                    String user = "xxxxx";

                    String pwd = "xxxxxx";                  

                    IConnection miConexion = null;

                   try {

                        miConexion =
ConnectionFactory.createConnection(dbURL, user, pwd);

                  } catch (DBException e2) {

                        // TODO Auto-generated catch block

                        e2.printStackTrace();

                  }

                  

                   

                    Statement st;

                   try {

 
st=((ConnectionJDBC)miConexion).getConnection().createStatement(ResultSet.TY
PE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

                     valor=campoValor.getText();

                     comboDatos.repaint();

                         nombreCampo=(String) comboDatos.getSelectedItem();

             

                  if (cbTodas.isSelected()==true){

                   int result=0;

                  for(int i=0;
i<listaParcelas.getSelectedIndices().length-1; i++){

                           int filasModificadas=0;                     

                           filasModificadas = st.executeUpdate("UPDATE "+
nombreTabla_Par+" SET "+nombreCampo+"='"+ valor+"' WHERE
parcela='"+vectorBDID.get(i)+"' AND "+"recinto='"+vectorBDNOMBRE.get(i)+"'
AND municipio='"+vectorMUNICIPIO.get(i)+"'");    

                        

                           result= result+filasModificadas;

                      } 

                    JOptionPane.showMessageDialog(null, "Los Cambios han
sido Guardados.El número de parcelas modificadas es: "+result, "Guardar
Cambios", JOptionPane.INFORMATION_MESSAGE);

                     }

 

Si ejecuto directamente sobre postgres la sentencia UPDATE que se genera, lo
hace correctamente…:S

No se que se puede estar haciendo mal…

 

Un saludo, 

 

 

Antonio Araque Ibáñez

 

Director Técnico

Entornos SIG (E-SIG)

Avda. Madrid, 43, Bl.1, Bj. A

23008 Jaén - España

Telf. +34 953 089 523

Fax +34 953 089 524

antonio.araque en e-sig.es

e-sig.es

 

De: gvsig_desarrolladores-bounces en listserv.gva.es
[mailto:gvsig_desarrolladores-bounces en listserv.gva.es] En nombre de "Jose
Manuel Vivó Arnal ( Chema )"
Enviado el: martes, 07 de diciembre de 2010 8:40
Para: Lista de Desarrolladores de gvSIG
Asunto: Re: [Gvsig_desarrolladores] Actualizar

 

Hola Antonio:

Creo que tu problema puede venir de que gvSIG, al usar cursores binarios
para pintar las capas y una única conexión, en el momento de ejecutar tus
sentencias estarás dentro de una transacción. Es posible que esa transacción
se cancele al terminar un pintado.

Si tienes la posibilidad, crea tu una conexión a la BBDD directamente y
ejecuta en ella tus cambios.

Un Saludo.
Chema.

El 03/12/10 14:36, Antonio Araque escribió: 

Hola a todos y todas, 

 

Estoy desarrollando una extensión para gvSIG en la que necesito actualizar
una base de datos PostgreSQL-PostGIS. Las actualizaciones requeridas son un
ALTER TABLE con ADD COLUMN y un UPDATE. 

El código de la sentencia es el siguiente (se entiende que la conexión a la
base de datos es correcta, porque para las consultas funcióna
correctamente): 

   

Statement
st=((ConnectionJDBC)conex).getConnection().createStatement(ResultSet.TYPE_SC
ROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

            String sentenciaModif = "ALTER TABLE "+ nombreTabla_Par+" ADD
COLUMN "+ nombreCampo+" VARCHAR(255);";

      boolean filasModificadas = st.execute(sentenciaModif);

 

La sentencia de Update es similar, con la consiguiente modificación de la
sentencia.

 

El problema es que, las modificaciones no llegan a la base de datos, he
probado incluso con el superUsuario de la base de datos PostgreSQL por si
hubiera problemas de permisos de la tabla, pero nada, siguen si hacerse
efectivas las modificaciones.

 

A que puede ser debido?? 

A alguien le ha ocurrido algo parecido??

 

Gracias por vuestros aportes!

 

 

 

Antonio Araque Ibáñez

 

Director Técnico

Entornos SIG (E-SIG)

Avda. Madrid, 43, Bl.1, Bj. A

23008 Jaén - España

Telf. +34 953 089 523

Fax +34 953 089 524

antonio.araque en e-sig.es

e-sig.es

 

 
 
_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores en listserv.gva.es
http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
  






-- 
Jose Manuel Vivó Arnal
DiSiD Technologies S.L. (http://www.disid.com)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20101209/d9010fb4/attachment.htm 


Más información sobre la lista de distribución gvSIG_desarrolladores