Yo también prefiero no usar controles DB, mejor hacerlos por Edits normales. Así la transacción empieza cuando el usuario pulsa el botón de aceptar y sabemos que terminará enseguida.
O eso, o usar ClientDatasets... un poco más latoso al principio de entender, pero puedes usar DBEdits. Tienes disponibles todos los eventos de esos controles DB. La transacción no empieza cuando editas un DBEdit. El botón aceptar se convierte en un ClientDataset1.ApplyUpdates; y ahí se aplican todos los cambios de golpe.
Para controlar los errores de 2 usuarios concurrentes, se usa File -> new -> Other -> Dialogs -> Reconcile Error Dialog
Es una ventana que le aparecerá al segundo usuario que intenta grabar el mismo registro que otro usuario se adelantó a grabar. Le dice qué campos tienen conflictos y los valores de los 2 usuarios. Además le pide al segundo usuario que resuelva el conflicto:
- guardar los datos que introdujo el primer usuario
- guardar los datos que ha introducido él mismo.
Saludos!
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
|