none
Listiview siempre actualizado.. RRS feed

  • Pregunta

  • Hola amigos, esta es mi primera pregunta aqui y espero me puedan ayudar con algo q me ha dado un kilo de problemas...

    Sucede que tengo un listview que me muestra información de una tabla de ORACLE, esta todo bien; la conexion, la carga de los datos etc...

    Pero lo que necesito es que el listiview se actualice de manera automatica cuando en la tabla se produzca un UPDATE, es decir...

    Si el usuario A... actualiza un registro que inmediatamente al Usuario B le aparezca actualizada la información.

    ahora si hay otro control más apto para esta operación agradecería me dijeran cual.

    he probado con

    1. OO4O, (Objet Ole For Oracle)
    2. OracleRowUpdatedEventArgs (Clase)
    3. y otros medios mas engorrosos q no merece mencionarlos,

    La idea es que se actualice el listview sin tener que depender de un Timer o un Objeto, si no que cuando se produzca el evento en la tabla.

     

    Agradecido del tiempo y esperando respuestas...

    aqui les dejo el código de como lo estoy haciendo. por cierto he importado:

    Imports System.Data.OracleClient

        Dim str_conexion As String = My.Settings.cnn_ora
        Dim str_Query As String = "SELECT * FROM Z_PROTOTIPE ORDER BY 1"
    
        Dim cnn_ora As New OleDbConnection(str_conexion)
    
        Dim myCommand As New OleDbCommand(str_Query, cnn_ora)
    
        'Abrir conexión con la base de datos de Oracle.
        cnn_ora.Open()
    
        Dim reader As OleDbDataReader = myCommand.ExecuteReader()
        'limpia el listview
        Me.ListView1.Items.Clear()
        While reader.Read()
          Dim oItem As ListViewItem
    
          If reader("NOMBRE").ToString <> "" Then
            oItem = Me.ListView1.Items.Add(reader("NOMBRE"))
          Else
            oItem = Me.ListView1.Items.Add("")
          End If
    
          If reader("APELLIDO").ToString <> "" Then
            oItem.SubItems.Add(reader("APELLIDO"))
          Else
            oItem.SubItems.Add("")
          End If
    
          If reader("TELEFONO").ToString <> "" Then
            oItem.SubItems.Add(reader("TELEFONO"))
          Else
            oItem.SubItems.Add("")
          End If
    
        End While
        reader.Close()
        cnn_ora.Close()

    Gracias!!!!

     

    .::Gustavo::.

     

     

    • Cambiado Enrique M. Montejo miércoles, 14 de septiembre de 2011 15:18 acceso a datos (De:Lenguaje VB.NET)
    viernes, 25 de junio de 2010 0:41

Todas las respuestas

  • hola

    no se si conocias pero en Sql Server existe esta funcionalidad

    SqlDependency

    Detectar cambios con SqlDependency (ADO.NET)

    pero la macana es que esta es solo valdia para Sql Server

    ahora viendo el tema note que existe la implementacion para Oracle

    Oracle Query Notification revisited

    aunque segun comata el link esta disponible con la version 11 de la base de datos, no se si en tu caso esto es una limitante

    imagino ademas que estas usando ODP.NET como proveedor para cnectarte a Oracle

    bueno analizalo por ahi es una buena alternativa

    saludis


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 25 de junio de 2010 3:19
  • Muchas Gracias!!!!....

     

    Si he trabajado con la dependencia de SQL... y ahora está clarisimo el cuento con ORACLE... aunque esto me cueste implementar el Ora.cliente11..

    Muchas gracias por tu tiempo y ayuda...

     

    Saludos.

     

    .::Gustavo::.

    viernes, 25 de junio de 2010 3:30
  • hola

    ante una migracion de version de servidor te recomandaria que realices algunas pruebas antes en algun entorno de test, digo por las dudas no arreglas por un lado y rompes por otro

    se que cambiar de version de Oracle no es nada simple, no soy DBA pero donde trabajo hay uno y lo veo renegar cada tanto con Oracle

    el tiene distintos entornos donde hace pruebas integrales para ver que el apsaje no afecte la performance de otro punto del sistema

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 25 de junio de 2010 3:36
  • Si... gracias por la observacion y tenemos una máquina para esos fines.

    al menos hare trabajar al DBA que tenemos!!! jajajajajajaja aunque hare laboratorio pues creo que con solo las referencias del Ora11... puede funcionar sin tener que cambiar en el entorno...

     

    Ahora manos a la obra.... espero q resulte algo bueno!!!

     

    Saludos.

    viernes, 25 de junio de 2010 3:41