Lo hago frecuentemente. Y uso esta rutina:
1.- Establezco la condición de consulta
2.- Con la SQL adecuada leo de la DB los registros que cumplan esa condición, abriendo un Adodc con el que lleno y presento un DataGrid
3.- Modifico, borro o añado registros en el DataGrid (aunque con una rutina externa al DataGrid).
4.- Cuando activo el boton de [Actualizar] o [Grabar] hago lo siquiente:
4a.- Ejecuto una SQL con DELETE para todos los registros que cumplan la condición de la consulta.
4b.- Paso a la DB todos los registros que tengo en el recordset del Adodc del DataGrid
4c.- "Updateo" la DB
Si activo el botón de [Cancelar], simplemente quito el DataGrid y cierro el Adodc. Todo queda como estaba.
Lo peor que puede pasar es que, estando en red, intenten actualizar los mismos datos dos clientes al mismo tiempo... ¡¡¡Siempre ocurrirá lo que ocurre siempre!!!: que prevalecerán los datos del último que actualizó, que por otra parte es lo lógico.
Saludos y suerte