Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Como saben otros usuarios si han cambiado los dato

Estas en el tema de Como saben otros usuarios si han cambiado los dato en el foro de Bases de Datos General en Foros del Web. Hola a todos, me gustaria saber como hacer para que si un usuario modifica una tabla, los usuarios que estan conectados se enteren y si ...
  #1 (permalink)  
Antiguo 10/01/2002, 09:17
mgf
 
Fecha de Ingreso: enero-2002
Mensajes: 7
Antigüedad: 22 años, 3 meses
Puntos: 0
Como saben otros usuarios si han cambiado los dato

Hola a todos, me gustaria saber como hacer para que si un usuario modifica una tabla, los usuarios que estan conectados se enteren y si tienen una consulta abierta sobre esa tabla se refresque.
Gracias.
  #2 (permalink)  
Antiguo 11/01/2002, 17:02
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Re: Como saben otros usuarios si han cambiado los dato

No se puede saber hasta que la persona que esta realizando las modificaciones realice el Commit.



Move Up or Move Out !!!
  #3 (permalink)  
Antiguo 14/01/2002, 12:49
mgf
 
Fecha de Ingreso: enero-2002
Mensajes: 7
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Como saben otros usuarios si han cambiado los dato

Lo que quiero saber es cómo decirle a los usuarios que tienen abierta una consulta sobre una tabla, que los datos han cambiado para que refresque los datos. No se si se hace con alertas, con triggers...Pero esto cuando los datos hayan cambiado.
  #4 (permalink)  
Antiguo 14/01/2002, 13:16
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Re: Como saben otros usuarios si han cambiado los dato

Crea un alert en tu base de datos en el postinsert de la tabla que desees y luego en tu forma puedes realizar algo parecido a esto en la parte WHEN-NEW-FORM-INSTANCE:
segundos := create_timer('seg',1000);
dbms_alert.register('sor$actualiza');
---
En la parte WHEN-TIMER-EXPIRED escribes lo siguiente:
declare
--
msg VARCHAR2(1);
status number;
the_username varchar2(50);
--
Begin
the_username := Get_Application_Property(USERNAME);

if the_username is not null then
--
dbms_alert.waitone('SOR$ACTUALIZA',msg,status,0);
--
if status = 0
then
hide_view('CG$STACKED_PAGE1_1');
--
go_block('REQ');
--
-- Actualiza bloque de trabajo : Requerimientos
--
:PARAMETROS.SELECCION := 'E';
SOR$REQUERI_ENTRA;
--
end if;
end if;
End;


--
En el trigger Sor$actualiza escribo lo siguiente:

TRIGGER "SOR$ACTUALIZA" AFTER INSERT OR DELETE OR UPDATE ON SISSOR_OW.SOR_REQUERIMIENTOS
Begin
Dbms_alert.signal('SOR$ACTUALIZA',null);
End;




Move Up or Move Out !!!
  #5 (permalink)  
Antiguo 15/01/2002, 03:51
mgf
 
Fecha de Ingreso: enero-2002
Mensajes: 7
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Como saben otros usuarios si han cambiado los dato

Antes de nada gracias por contestarme Linterns. La parte de crear el trigger la tengo clara, lo que no tengo tan claro es la primera parte. Qué quieres decir con WHEN-NEW-FORM-INSTANCE. Trabajo con C++ y no se si lo de registrar al alarma y el waitone lo tengo que hacer en Oracle o en mi aplicación.
Lo siento soy nueva en esto. Podrías explicarmelo un poco? Gracias por todo
  #6 (permalink)  
Antiguo 15/01/2002, 18:52
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Re: Como saben otros usuarios si han cambiado los dato

Bueno, creo que asumi que trabajasbas en Designer o Forms Builder de Oracle.
En sintesis lo que hace es lo siguiente:
Cuando grabas en la tabla esta dispara una alarm (ok, todo bien hasta aca)...
En la aplicacion le digo que revise esa alarm cada 1 segundo (WHEN-NEW-FORM-INSTANCE la declaro y WHEN-TIMER-EXPIRED la reviso) si la alarma se dispara mando a llamar un procedimiento que lo que hace es volver a cargar la consulta qu tengo en el momento y esta se refresca.
En C++ no se como se hace eso pero si me captaste el concepto creo que te sirve.

Si tienes dudas vuelve a postearme un mensaje y vemos como lo resolvemos. Suerte



Move Up or Move Out !!!
  #7 (permalink)  
Antiguo 16/01/2002, 06:25
mgf
 
Fecha de Ingreso: enero-2002
Mensajes: 7
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Como saben otros usuarios si han cambiado los dato

Muchas gracias por todo lo probaré y si tengo alguna duda ya te pregunto.
Un saludo
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 08:06.