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

Error Al Eliminar Usuario

Estas en el tema de Error Al Eliminar Usuario en el foro de Java en Foros del Web. Hola tengo un problema: Tengo una aplicacion que trabaja con java y oracle 9i. Lo que pasa es que tengo una base de datos creada, ...
  #1 (permalink)  
Antiguo 03/11/2005, 13:41
 
Fecha de Ingreso: mayo-2005
Mensajes: 294
Antigüedad: 19 años
Puntos: 0
Error Al Eliminar Usuario

Hola tengo un problema:
Tengo una aplicacion que trabaja con java y oracle 9i. Lo que pasa es que tengo una base de datos creada, y varios usuarios creados para ella. En un momento dado quiero eliminar uno de esos usuarios y la aplicacion siempre me salta con el mismo. Si por ejemplo he creado tres usuarios en este orden:
usuario1
usuario2
usuario3

intento eliminar el usuario1, y el usuario2 y no me da ningun problema. El problema es cuando intento borrar el usuario3 que es ultimo que he creado. me da el error:

ORA-01940: no se puede borrar un usuario conectado actualmente
No entiendo por que me da ese error si yo en el codigo en el cual elimino el usuario lo primero que hago es conectarme a la base de datos con otro usuari( me conecto con el usuario system, de este modo el usuario que esta conectado es system y no el que quiero eliminar!) Os pongo el codigo a ver si veis donde puede estar el error ok?

try {
Connection con = gdc.ConexionServauto();
PreparedStatement ps;
con=gdc.ConexionAlumno("system","alumno_system"); ps=con.prepareStatement("drop user "+usuario+" cascade");
int afectados = ps.executeUpdate();
}


Dos comentarios:
1. he comprobado el valor de la variable "usuario" y efectivamente toma en cada momento el valor del usuario que quiero eliminar por lo tanto ahí no esta el erro.
2. La linea que he recalcado es la linea donde llamo a la funico que únicamente hace conectarse a la base de datos con el usuario system os pedgo el codigo por si acaso:

public Connection ConexionAlumno(String usuario, String password){
try{
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@loc alhost:1521:ALUMNO", usuario,password);
return con;
}catch (Exception ex){
return null;
}
}
  #2 (permalink)  
Antiguo 03/11/2005, 14:43
 
Fecha de Ingreso: agosto-2005
Mensajes: 95
Antigüedad: 18 años, 8 meses
Puntos: 0
mira no se si sera pero cuado colocas cascade como dice su nombre elimina en cascada todos los objetos que estan relacionados.
Otra informacion si quieres manejar usuarios de algun sistema lo ideal es que cres una tabla "usuarios" y dentro de ella creas usuarios y en vez de eliminar usuarios propios de la base eliminas usuarios de una tabla, espero se haya entendido.
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 10:04.