Bueno hay que enteder un poco la lógica de las transacciones...
Logicamente dos usuarios con diferentes conexiones pueden modificar en el mismo instante de tiempo(aunque no es así exactamente) un mismo registro, pero el servidor en realidad lo que hace es, primero permitir editar
a la primera conexion(la primera que llega), para tal efecto bloquea la tabla,para que ninguna otra conexion(usuario) pueda acceder a ella,terminada la modificacion, pues nuevamente habilita la tabla desbloqueandola para hacer lo mismo con la siguiente conexion o usuario.
Evidentemente eso es casi imperceptible para el humano, estamos hablando milisegundos o quizás nanosegundos entre una conexion y la otra.
Por otra parte quiero comentarte que el componente
TZConnection es el que maneja las transacciones en los componentes Zeos, pues tiene tres métodos importantes para iniciar, confirmar y revertir una transaccion:
Código Delphi
[-]begin
ZConnection1.StartTransaction;
...
ZConnection1.Commit;
...
ZConnection1.Rollback;
...
end;
Saludos...