Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con Autocommit

Estas en el tema de Problema con Autocommit en el foro de Java en Foros del Web. con el siguiente código Código: public void ejecutar(ArrayList sqls) throws Exception { conexion.setAutoCommit(false); try { Statement st = conexion.createStatement(); for (int i =0; i<sqls.size(); i++){ ...
  #1 (permalink)  
Antiguo 18/08/2008, 01:22
 
Fecha de Ingreso: octubre-2006
Mensajes: 96
Antigüedad: 17 años, 6 meses
Puntos: 0
Problema con Autocommit

con el siguiente código


Código:
public void ejecutar(ArrayList sqls) throws Exception {
		conexion.setAutoCommit(false);
		try {
			Statement st = conexion.createStatement();
			for (int i =0; i<sqls.size(); i++){
				String sql = String.valueOf(sqls.get(i)); 
				st.executeUpdate(sql);
			}
			conexion.commit(); // ejecuta
			st.close();
		} catch (SQLException e) {
			try {
				conexion.rollback();
			} catch (SQLException e1) {
				e1.printStackTrace();
			} //algo falló
			System.out.println("Error al ejecutar sql.\n" + e.getMessage());
		}
		finally{
			try{
				conexion.setAutoCommit(true);
			}
			catch (SQLException e) {
				System.out.println("Error.\n" + e.getMessage());
			}
		}

	}
Me lanza esto:



java.sql.SQLException: [Microsoft][Controlador ODBC Microsoft Access]No se puede definir el atributo ahora
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLSetConnectOption(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.setAutoCommit(Unk nown Source)

en la linea del conexion.setAutoCommit(false);

por favor si alguien puede ayudarme, el Autocommit no lo tengo muy claro y debo estar haciendo algo mal.



Gracias
  #2 (permalink)  
Antiguo 18/08/2008, 10:57
 
Fecha de Ingreso: junio-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con Autocommit

que es lo que quieres exactamente hacer para ayudarte.
el commit inicialmente se encuentra en true, uno coloca autocommit en false para que uno mismo pueda ejecutar la instruccion.esto me permite un mejor manejo del inicio y cierre de instrucciones.generalmente son usados cuando se quieren ejecutar mas de una transaccion a la vez.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:40.