Ver Mensaje Individual
  #2  
Antiguo 26-06-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Reputación: 17
gabrielkc Va por buen camino
Saludos

Te recomiendo que leas la guia de estilo o al menos uses parrafos.

Pero bueno. Varias opciones por si no entendí tu punto.

Para evitar el Key Violation te recomiendo usar Triggers, defines un trigger en el Before Insert para que le asigne la siguiente llave:
CREATE TRIGGER NUEVO_REGISTRO FOR TABLA
BEFORE INSERT
AS
BEGIN
NEW.CAMPO_LLAVE=GEN_ID(GENERADOR,1);
END;

Obviamente el generador debe ser definido con anticipacion. Buscate como hacer trigger si no sabes. Para que esto de resultado tendrias que hacer commit despues de guardar cada dato.

Si lo que quieres es que el cliente n vea en tiempo real lo que el cliente n+1 hace. Puedes usar un trigger para cada accion en la bd (en el After Insert, After Update After Delete) que genere un evento y cachar el evento desde tu aplicacion.

En Delphi6 el componente que se usa para interceptar evento es el IBEvents:
seria algo asi:

CREATE TRIGER INSERCION FOR TABLA AFTER INSERT
AS
BEGIN
POST_EVENT 'INSERCION_TABLA_X';
END;
CREATE TRIGER MODIFICACION FOR TABLA AFTER UPDATE
AS
BEGIN
POST_EVENT 'MODIFICACION_TABLA_X';
END;


y en delphi podria ser en el evento OnCreate del DataModule:

IBEvents.Events.Add('INSERCION_TABLA_X');
IBEvents.Events.Add('MODIFICACION_TABLA_X');


Y en el evento: OnEventAlert del IBEvents pondrias el codigo que controlaría la actualización de tus datos. Espero que sea de utilidad la informacion

Última edición por gabrielkc fecha: 26-06-2007 a las 17:29:48.
Responder Con Cita