Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - d91

#91
creo que al final no son las variables de sesión, sino que al dar click en el logout me redirecciona al login, pero al dar clic en la flechita ir atrás en el navegador me carga la ultima pagina visitada
#92
hola,  necesito saber como destruir las variables de sesion y vaciar una clase de tipo singlenton(de una sola instancia) porque aunque los asigno a nothing no quedan vacias, ya he probado asi
Código (vbnet) [Seleccionar]


GlobalIdentity.Instance.User = ""
        GlobalIdentity.Instance.Password = ""
        Me.Session("UserID") = Nothing
        Me.Session("UserName") = Nothing
        Me.Session.RemoveAll()
#93
hola necesito loguearme de manera dinamica con diferentes usuarios ya definidos dentro de Oracle, la clase singlenton  y la funcion de conexion ya funcionan bien, siempre que el usuario y el password sean correctos, lo unico que cuando ingreso algun usuario equivocado entonces no va a conectar y oracle directamente produce una excepcion y detiene la ejecucion,  no se como capturar esa excepcion y traducirla en un pequeño mensaje de "USER Y PASS INCORRECTOS" a mi aplicacion web
Código (vbnet) [Seleccionar]

  Public Function conexion() As Oracle.DataAccess.Client.OracleConnection
        Try
            'Dim objeto As New GlobalIdentity
            user = GlobalIdentity.Instance.User
            pass = GlobalIdentity.Instance.Password

                If String.IsNullOrEmpty(user) Or String.IsNullOrEmpty(pass) Then
                    Throw New Exception("Usuario y Password son requeridos")
                End If

           

            Dim conn As String = ConfigurationManager.ConnectionStrings("Principal").ConnectionString

            conn = String.Format(conn, user, pass)
            Dim cn As New OracleConnection()
            cn.ConnectionString = conn
                Return cn
        Catch ex As OracleException

            Throw New ArgumentException("Error en la Conexion" & ex.ToString)


        End Try

    End Function
#94
hola a todos, aunque se muy bien que para pedir apoyo debo de poner codigo, esta vez no he podido construir casi nada, necesito realizar un backup logico de una base de datos oracle desde una aplicacion en .net pero no se como, un ejemplo encontre pero para SQL Server, el export siempre lo habia hecho desde la consola
Código (sql) [Seleccionar]

expdp usuario/contraseña dumpfile=copia_oracle_export.dmp
logfile=copia_oracle_export.log directory=CARPETA_EXPORT full=y
#95
ya lo resolvi el problema es que solo habia trabajo con messageBox y ahora que requiere un mensaje sobre algun label de una aplicacion web no podia comprender lo del valor de retorno y la exception, gracias a todos
#96
aqui esta el codigo completo,  las variables priv en la aplicacion son checkbox para saber cuales hay que retirar. El nombre del usuario lo tomo de un dropdownlist que esta lleno con los usuarios que estan activos, y vuelvo a recalcar que desde la consola al realizar el for desde un bloque anonimo si funciona
Código (sql) [Seleccionar]

create or replace procedure usp_quita_priv
(nombre varchar2,
priv1 NUMBER,
priv2 NUMBER,
priv3 NUMBER,
priv4 NUMBER,
proc number,
borrar number,
sesion number
)
is
privilegios varchar2(512);
begin
  if borrar > 0 then
    execute immediate 'Drop user '||nombre||' cascade';
    elsif sesion > 0 then
    execute immediate 'Revoke create session FROM '||nombre;
    END IF;
   
   
      if priv1 > 0 then
        privilegios:='INSERT';
      end if;
 
      if priv2 > 0 and privilegios is not null then
          privilegios:=privilegios||','||' UPDATE';
      end if;

      if priv2 > 0 and privilegios is null then
         privilegios:='UPDATE';
      end if;
   
      if priv3 > 0 and privilegios is not null then
         privilegios:=privilegios||','||' DELETE';
      end if;

      if priv3 > 0 and privilegios is null then
         privilegios:='DELETE';
     end if;
 
      if priv4 > 0  and privilegios is not null then
         privilegios:=privilegios||','||' SELECT';
      end if;

      if priv4> 0 and privilegios is null then
         privilegios:='SELECT';
      end if;
     
       ----------------------------------------
  if privilegios is not null then
  FOR x IN (SELECT table_name nombre FROM user_tables)
LOOP
  ---dbms_output.put_line(x.nombre);
  --EXECUTE IMMEDIATE 'GRANT SELECT ON ' || x.table_name || ' TO <<someone>>';
  --execute immediate 'GRANT '||privilegios||' on '||'"'||user||'"'||'.'||'"'||x.nombre||'"'||' to '||usuario_;
    execute immediate 'Revoke '||privilegios||' on '||'"'||user||'"'||'.'||'"'||x.nombre||'"'||' from '||nombre;
END LOOP;
end if;

  if proc > 0 then
  FOR x IN (SELECT distinct name nombre, type FROM USER_SOURCE WHERE TYPE IN ('PROCEDURE'))
LOOP
  --execute immediate 'GRANT EXECUTE  on '||'"'||user||'"'||'.'||'"'||x.nombre||'"'||' to '||usuario_;
  execute immediate  'Revoke execute on '||'"'||user||'"'||'.'||'"'||x.nombre||'"'||' from '||nombre;
END LOOP;

  end if;
           
  ---borrar > 0
end;


#97
un ultimo detalle encontre ahora que cambio el tipo de retorno, dentro  de la misma clase donde tengo la funcion de ejecutar sql, tengo una que devuelve un dataset para llenar un dropdownlist, en esta funcion creo que no puedo cambiar el tipo de retorno para enviar el mensaje de error
#98
la razon de hacer una funcion que devuelva un entero es porque al hacer el excuteNonQuery me devuelve un 1 y entonces lo retorno hasta la pagina aspx para dar un mensaje de "Operacion exitosa", y segun la orientacion que me han dado esta funcion  hare  que retorne la cadena de  mensaje exitoso desde aqui para que tambien pueda devolver una cadena de error.
#99
hola a todos, solo quiero que me orienten de como capturar una excepcion que dispara oracle y que es una cadena, no las he podido controlar con el codigo de visual basic.net porque de la forma en que lo hago retornaria una cadena y la funcion donde tengo el try catch retorna un entero si la ejecucion es normal
Código (vbnet) [Seleccionar]

public function ejecutasql() as integer
try
'todo_bien en la consulta
return 1
Catch ex As OracleException
Return "Error al generar Consulta" & ex.ToString
End Try

tambien he probado con esta otra pero igual no me controla la excepcion sino que de una vez me detiene la ejecucion
Código (vbnet) [Seleccionar]

Catch ex As OracleException
            Throw New ArgumentException("Error al generar consulta " & ex.Message.ToString)
        End Try
#100
Bases de Datos / quitar privilegios en oracle
5 Octubre 2015, 04:26 AM
hola, estoy trabajando con oracle desde una aplicacion en .net, desde la app creo un usuario y le doy privilegios, y desde la misma app le tengo que quitar esos privilegios, en la creacion y dar privilegios no hay problema pero al momento de quitarlos da este error
Código (vbnet) [Seleccionar]

ORA-01031: insufficient privileges

la linea de codigo que ejecuto en el procedimiento almacenado es este
Código (sql) [Seleccionar]

execute immediate 'Revoke create session FROM '||nombre;

el privilegio que estoy quitando es para que ya no se pueda conectar a la base de datos, lo unico es que al hacerlo desde la consola no hay problema, aunque lo hago con el mismo usuario que es propietario de algunas tablas y que tiene privilegios de DBA