FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas de Actualizacion de Datos
Hola, a Todos Tengo una aplicacion hecha en delphi7, entonces la tenemos en Red, un servidor tiene la base de datos que comparte a los demas clientes, entonces la misma aplicacion la abren a la ves dos personas, y hacen los mismo los dos pero lo que hace uno no se actualiza en la tabla que estan udsando los dos al mismo tiempo, las tablas las tengo cached updates, ademas que las abro y cierro al entrar y salir de la forma pero como que cada uno abre su session y lo que se hace nuevo en algun lado no aparece en la tabla, y si intento grabar pues sale lo de key violation, entonces como si no hiciera nada sobre la tabla, si pues ya hasta se salio del programa la persona que grabo algo en la tabla, entonces no se que este pasando ya hasta commitupdate hago y nada sigue lo mismo y lo raro es que se abre la aplicacion otra ves y si se ven los cambios pero si aquella ventana del otro cliente no se cierra se queda viendo los datos como el cliente los abrio como si no hubiera ningun solo cambio que problema tendre Espero que se entienda y alguna idea me DAN Gracias y Saludos.
|
#2
|
|||
|
|||
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. |
#3
|
||||
|
||||
Antes que todo, Que base de datos utilizas? y Que componentes?
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#4
|
|||
|
|||
Esto es lo que uso
Cita:
Saludos y BYe. |
#5
|
||||
|
||||
Comparte la solucion, caeria bien para otros con la misma duda
Saludos
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#6
|
|||
|
|||
La Solucion
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Actualizacion De Datos Con Sql | luxus | Conexión con bases de datos | 2 | 03-08-2006 00:20:18 |
Actualización de Datos | Palmiro | Conexión con bases de datos | 3 | 02-02-2006 16:08:58 |
Problemas de actualización con los DBGrid | Dexter182 | Tablas planas | 8 | 21-07-2005 10:05:20 |
Actualizacion de datos | bbjb | Conexión con bases de datos | 7 | 12-07-2004 17:52:03 |
problemas con la actualizacion en el dset | VRO | Conexión con bases de datos | 2 | 15-05-2004 03:24:24 |
|