FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como se podría bloquear un registro
Hola a todos y gracias por anticipado.
Trabajo con D5 y tablas Paradox, es una aplicacion en red y mi problema con los bloqueos es el siguiente: La aplicacion tiene una primera pantalla donde saco un DBgrid con los registros de una tabla, y entre otros un boton de modificar datos. Si hago doble clic en el dbgrid (consulta) o si hago un clic y botón modificar me pasa a la sagunda pantalla mostrandome los datos. Bien pues me gustaria que: Si doy un clic en el registro "n" y pico el boton modificar, que cuando alguien desde otro puesto haga doble clic en el dbgrid en el registro "n" diga :"registro modificandose por el usuario xxxxx"; y si dos puestos hacen doble clic sobre el mismo registro que los deje visualizar la pantalla. Es decir: 1) PC 1 DblClic registro 7 y PC 2 DblClic registro 7 = Pasa 2ªPantalla 2) PC 1 Btn Modificar 7 y PC 2 DblClic Reg.7 = Que diga "Registro modificandose por usuario xxxxxx" y no pasa 2ª pantalla 3) PC 1 Btn Modificar 7 y PC 2 BtnModificar 7 = Que diga "Registro bloqueado por usuario xxxxxx" y no pasa 2ª pantalla He usado tres o cuatro funciones (en el OnEditError de la tabla, LockRecord, DbiIsRecordLocked, etc) y ninguna hace al 100% lo que quiero. El supuesto 1 y 3 si, pero el 2 no lo consigo). ¿Podría alguien echarme una mano con esto por favor? Os vuelvo a dar a todos las gracias por intentarlo Marcial |
#2
|
||||
|
||||
Mira luego del doble click colocas a editar el registro, yo lo he hecho y seguro que funciona, yo lo hice de la siguiente forma
Código:
try Table1.Edit except // Capturar el error si es de bloqueo manejarlo como se desea end; la clausula except no te lo coloco porq no la se de memoria pero investiga las excepciones que seguro que lo puedes hacer. cualquier duda me preguntas
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
|||
|
|||
Gracias por tu contestación, pero creo que no lo estoy haciendo bien porque hay algo que falla.
Si despues del dblclick en el dbgrid pongo un Table1.Edit, ya bloqueo ese registro y cuando otro puesto hace otro dblclik en ese registro dice que esta bloqueado. Se trata de saber cuando hago un dblclik (browse) si algun usuario pulso el boton de modificar desde otro puesto(ese si que hace un table1.edit). Espero tus sugerencias. Un saludo |
#4
|
||||
|
||||
la unica forma que yo conozco de hacerlo es como te comente, lo que podrias hacer es lo siguiente:
Si le da click al boton modificar que el registro quede bloqueado. si le da dobleclick al browser Edita el registro, de alli tienes dos condiciones: 1.- Si te da la excepciones decir que ya esta bloqueado, por lo tanto sacas la informacion que necesitas 2.- Si no te da la excepcion es porq esta libre, entonces lo desbloqueas de nuevo. Es lo que sugiero fijate a ver si te sirve
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#5
|
|||
|
|||
Muchas gracias por tu ayuda.....he aplicado tu sugerencia y me ha funcionado. Gracias por ayuda a los que sabemos menos
|
|
|
|