|
Pero eso depende de que BD estes usando y de como tengas configuradas las transacciones
Hay RDBMS que implementan bloqueo por tabla, por fila, por registro, etc
Luego esta el modo en el que trabajan las transacciones. Sobre todo la propiedad IsolationLevel (Aislamiento)
Tampoco llego a ver porque seria necesario implementar todo eso, aparentemente por el codigo que expones ahi mismo en un mismo metodo haces el edit y el post. Es decir que demoraria unos cuantos milisegundos. Luego si llegan varias peticiones es trabajo de gestor de la bd el como procesarlas (es probable que en el otro cliente te tire el error de que el ultimo valor de la fila que conocias fue modificado y debas hacer un refresh o requery)
Luego tenes la opcin de usar ClientDataSet y mandar a aplicar los deltas,y que se encarge de hacer el trabajo sucio la bd
Si lo que queres realmente es bloquear hasta que se escribe, podes poner un boton1 y en su evento poner en edicion al DataSet (.Edit) y luego tener otro boton2 para hacer el .Post. Si le dan al .edit, hasta que no hagan .post o bien un .cancel con otro boton, la tabla esta en edicion
con respecto al try..finally, se intenta ejecutar lo que esta en el bloque del try, si hay una excepcion salta directamente al except y ejecuta lo del finally; ademas, el bloque del finally se ejecuta SIEMPRE. Es decir en tu caso, si no puede poner la tabla en modo de edicion y eso genera una excepcion, entonces ejecuta el .post
Última edición por ecfisa fecha: 05-03-2015 a las 19:29:46.
|