elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17
111  Programación / .NET (C#, VB.NET, ASP) / Re: llenar list(of oracleparameter) a partir de una clase en: 21 Septiembre 2015, 14:37 pm
investigue un poco mas, hice algunas modificaciones, pero al ejecutar el executenonquery el error dice "El objeto debe estar abierto" y creo que se refiere  a la conexion, aunque la conexion si funciona para el select, les dejo la modificacion y el ejecuta query
Código
  1. Public Function EjecutaSql(ByVal spName As String, ByVal tienda As clstienda) As Integer
  2.  
  3.        Dim row As Integer
  4.  
  5.        Try
  6.            con = New ConectDatos
  7.  
  8.            Dim listaParam As List(Of OracleParameter) = New List(Of OracleParameter)
  9.            Dim param1 As OracleParameter = New OracleParameter("id_", OracleDbType.Int32)
  10.            param1.Value = tienda.getid
  11.            listaParam.Add(param1)
  12.            Dim param2 As OracleParameter = New OracleParameter("tienda_", OracleDbType.Varchar2)
  13.            param2.Value = tienda.getnombre
  14.            listaParam.Add(param2)
  15.            Dim param3 As OracleParameter = New OracleParameter("direccion_", OracleDbType.Varchar2)
  16.            param3.Value = tienda.getdireccion
  17.            listaParam.Add(param3)
  18.            Dim param4 As OracleParameter = New OracleParameter("tel_", OracleDbType.Int32)
  19.            param4.Value = tienda.gettel
  20.            listaParam.Add(param4)
  21.            Dim param5 As OracleParameter = New OracleParameter("gerente_", OracleDbType.Varchar2)
  22.            param5.Value = tienda.getgerente
  23.            listaParam.Add(param5)
  24.            Dim param6 As OracleParameter = New OracleParameter("desc_", OracleDbType.Varchar2)
  25.            param6.Value = tienda.getdesc
  26.            listaParam.Add(param6)
  27.  
  28.            row = con.EjecutarQuery(spName, listaParam)
  29.            Return row
  30.        Catch ex As Exception
  31.            Throw New Exception("Error al generar Consulta " + ex.Message.ToString)
  32.        End Try
  33.  
  34.    End Function
  35.  
  36. '********
  37.  
  38. '///////////
  39.  
  40. Public Function EjecutarQuery(ByVal spName As String, ByVal parameters As List(Of OracleParameter)) As Integer
  41.        Dim cmd As OracleCommand
  42.        Dim row As Integer                                  'List(Of OracleParameter)
  43.        Try
  44.            Using conexion()
  45.                conexion.Open()
  46.                cmd = New OracleCommand(spName, conexion)
  47.  
  48.                If Not parameters Is Nothing Then
  49.                    cmd.CommandType = System.Data.CommandType.StoredProcedure
  50.                    For Each p In parameters
  51.                        cmd.Parameters.Add(p)
  52.                    Next
  53.                End If
  54.                row = cmd.ExecuteNonQuery()
  55.                Return row
  56.            End Using
  57.  
  58.        Catch ex As Exception
  59.            Throw New ArgumentException("No se logro ejecutar la consulta en la DataBase " + ex.Message.ToString)
  60.        End Try
  61.    End Function
  62.  
112  Programación / .NET (C#, VB.NET, ASP) / llenar list(of oracleparameter) a partir de una clase en: 20 Septiembre 2015, 20:47 pm
hola, estoy construyendo un pequeño proyecto con visual basic.net  y oracle con store procedure, ya he visto algunos ejemplos para hacerlo en capas, lo unico que en los ejemplos esta lista se llena de manera estatica porque son procedimientos de select, pero necesito hacer un insert pero no se como recorrer la clase que la he recibido como objeto les dejo el procedimiento que si funciona pero es estatica con la lista y la que tengo que implementar
Código
  1. Public Function SelectEmple(ByVal spName, ByVal IntIdTienda As Integer) As DataSet
  2. Dim ds As DataSet
  3. Try
  4. con = New ConectDatos
  5. Dim listaParam As List(Of OracleParameter) = New List(Of OracleParameter)
  6. Dim param1 As OracleParameter = New OracleParameter("IntIdTienda", OracleDbType.Int32)
  7. param1.Value = IntIdTienda
  8. listaParam.Add(param1)
  9. Dim param2 As OracleParameter = New OracleParameter("ResCursor", OracleDbType.RefCursor)
  10. param2.Direction = ParameterDirection.Output
  11. listaParam.Add(param2)
  12. ds = New DataSet
  13. ds = con.getdataset(spName, listaParam)
  14. Return ds
  15. Catch ex As Exception
  16. Throw New ArgumentException("Error cursor USP_CARGA_EMPLEADOS" + ex.ToString)
  17. End Try
  18. End Function
  19.  
  20. '*****************************
  21.  
  22. '*****************************
  23. Public Function EjecutaSql(ByVal spName As String, ByVal entidad As Object) As Integer
  24. con = New ConectDatos
  25. Dim row As Integer
  26. Dim i As Integer
  27.  
  28. Dim listaParam As List(Of OracleParameter) = New List(Of OracleParameter)
  29. 'Dim param1 As OracleParameter
  30. 'i = 0
  31. '
  32. 'For Each p As Object In entidad
  33. 'param1 = New OracleParameter(entidad(i++), OracleDbType.Int32)
  34. '     listaParam.Add(param1)
  35. ' Next
  36. row = con.EjecutarQuery(spName, listParam)
  37. Return row
  38. End Function
  39.  
agradezco de antemano la orientacion
113  Programación / Bases de Datos / ver tablespace de cada usuario en: 18 Septiembre 2015, 03:04 am
hola a todos, necesito ver los tablespace asignados a cada usuario en oracle a traves de un procedimiento almacenado, pero al compilar el procedimiento dice que la tabla o vista no existe, lo raro es que si ejecuto solo el select en la consola si me los muestra porque tengo los permisos necesarios
Código
  1. CREATE OR REPLACE PROCEDURE usp_ver_tablespace(ResCursor IN OUT SYS_REFCURSOR)
  2. IS
  3. BEGIN
  4. OPEN ResCursor
  5. FOR SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS;
  6. END;

ya hice tambien el procedimiento para ver los todos los usuarios y este si me funciono
114  Programación / Bases de Datos / Re: capturar el nombre de usuario que hace un insert en: 18 Septiembre 2015, 02:43 am
logre solucionar concatenando directamente
Código
  1. USER
115  Programación / Bases de Datos / Re: capturar el nombre de usuario que hace un insert en: 16 Septiembre 2015, 17:46 pm
si, lo de los log's ya esta, y mediante los trigger puedo saber sobre si es update, insert o delete, de lo que he investigado encontre una query, pero yo cree un usuario y me conecte, probe la query pero las credenciales que me salen son las de mi maquina,  y lo que necesito son las credenciales del usuario para deducir responsabilidades
Código
  1. SELECT
  2. rtrim(UPPER(sys_context('USERENV','OS_USER'))) username,
  3. rtrim(UPPER(sys_context('USERENV','TERMINAL'))) userterminal
  4. FROM dual
116  Programación / Bases de Datos / capturar el nombre de usuario que hace un insert en: 16 Septiembre 2015, 15:01 pm
hola a todos, estoy trabajando un proyecto en Oracle relacionado a transacciones, pero me piden que al realizar un insert, delete, update, guarde en una bitacora el nombre de usuario que lo realizo, tipo de operacion  y  la tabla que se realizo, pero no se si se hace con un select  a algunas de las tablas V$ de oracle o es al sistema en si, para capturar y meterlo en un cursor, agradezco su orientacion
117  Programación / Programación C/C++ / Re: Arreglos y Cadenas de caracteres AYUDA en: 5 Septiembre 2015, 04:28 am
¿El fichero a leer es cualquiera al azar? o ¿El fichero fue escrito con una estructura?
de la primera forma, se necesita crear una funcion que lea los caracteres y los vaya agrupando y guardando en un arreglo, y despues comparar
Código
  1. if(isalpha());
  2. ///***///
  3. if(strcmpy(cadena1,cadena2)) cont++;
ahora para la segunda forma seria tal vez con un doble fread(); comparando lo que va leyendo
118  Programación / Programación C/C++ / Re: retomar bucle for con valores globales en: 2 Septiembre 2015, 18:18 pm
es solo simulacion y no he utilizado threads, esto es  para comprender como se manejan las interrupciones y funcionamiento segun los algoritmos de dekker, al final encontre una solucion al problema
Código
  1. p1.acumulador=p1.acumulador+1000;
al principio asignaba lo que tenia i pero no se porque razon no corria bien
119  Programación / Programación C/C++ / retomar bucle for con valores globales en: 2 Septiembre 2015, 16:56 pm
Hola a todos, estoy intentando simular el algoritmo dekker 1 (alternancia estricta), llamo al proceso 1, y su seccion_critica inicia el bucle for empieza corriendo bien pero al retomar el bucle for despues de la  primera interrupcion ya no lo realiza, el for deberia llegar a 7000 porque  aumento el acumulador de los procesos
Código
  1. struct PCB{
  2. int id; //id del proceso
  3. char nombre[16];//nombre
  4. int tareas_iniciales; //duracion de las tareas iniciales
  5. int duracion; //cuanto durara el proceso
  6. int quantum; //contador de interrupciones
  7. int acumulador;//valor antes de la interrupcion
  8. };
  9.  
  10. PCB p1;
  11. PCB p2;
  12.  
  13. void crear_procesos(){        /***********************************/
  14. p1.id=1;                      //  RELLENA DATOS A LAS
  15. strcpy(p1.nombre,"PWRDVD");   //  ESTRUCTURAS
  16. p1.duracion=7000;             //  DE TIPO PCB
  17. p1.quantum=0;                 //
  18. p1.acumulador=0;              //                 //
  19. p1.tareas_iniciales=2000;     //  P1 ES PARA PROCESO1
  20.                              //
  21. p2.id=2;                      //
  22. strcpy(p2.nombre,"DVDRIPPER");//  P2 ES PARA PROCESO2
  23. p2.duracion=7000;             //
  24. p2.quantum=0;                 //
  25. p2.acumulador=0;              //                  //
  26. p2.tareas_iniciales=2000;     /*****************************/
  27. }
  28.  
  29. int seccion_critica(int id){
  30. cout<<"\nSeccion Critica: Proceso "<<id;
  31.   if(id==1){
  32.   for(int i=p1.acumulador; i<=p1.duracion; i=i+1000){
  33.   p1.acumulador=i;
  34.      if(i==3000||i==6000||i==9000){
  35.  
  36.         return 1;    /*** ENTRO AL BUCLE DEL QUANTUM ***/
  37.         Sleep(2000);
  38.         break;
  39.   }  //if
  40.   }//for
  41.   }//if principal
  42.   else{
  43.       for(int i=p2.acumulador; i<=p2.duracion; i=i+1000){
  44.            p2.acumulador=i;
  45.   if(i==3000||i==6000||i==9000){
  46.  
  47.         return 1;        /*** ENTRO AL BUCLE DEL QUANTUM***/
  48.         Sleep(2000);
  49.         break;
  50.   }  //if
  51.   }//for
  52.   }//else
  53.   Sleep(2000);
  54. }
  55.  
  56.  
la interrupcion se da a los 3000 lo cual si funciona, se interrumpe pero como es alternancia estricta regresa hacia la seccion_critica porque no ha terminado, en teoria la siguiente seria en 6000, pero despues de la primera interrupcion se vuelve a llamar a la sección critica del proceso 1 pero el ciclo for ya no hace nada solo se inicia en 3000 pero ya no sigue contando, aunque p1.duracion sigue siendo 7000, agradecere sus aportes
120  Programación / Programación C/C++ / numeros aleatorios con rand en: 30 Agosto 2015, 16:52 pm
hola a todos, deseo comprender una linea de codigo que me dieron, es de numeros aleatorios con rand
Código
  1. numero=rand() % 100 + 1 <= 50 ? 1 : 2;
entiendo la parte que dice que el numero sera entre 1 y 100, pero ya no entiendo donde es menor o igual a 50, entre 1 y 2 agradezco su orientacion
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines