Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Error Al Eliminar Usuario (http://www.forosdelweb.com/f45/error-eliminar-usuario-347043/)

CARCAHARAS 03/11/2005 13:41

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;
}
}

erikantonio 03/11/2005 14:43

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.


La zona horaria es GMT -6. Ahora son las 21:12.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.