Ejemplo general (luego tu lo adaptas):
-- Tengo un IBQUERY donde lanzo la consulta (SELECT * FROM TABLA WHERE...)
-- Pongo un IBSQL por ahí, para tareas auxiliares, que lo voy a usar para el update ficticio.
-- Cuando sucede el evento donde quieres que a partir de ahí se bloquee el registro, pones el codigo siguiente. Por ejemplo si tengo un BDGRID y al hacer doble click en una fila se abre la "ficha" del cliente para verlo. Puedo poner el codigo en el doble click de la fila o en el formshow del formulario que se abre, por ejemplo.
--Pongo el codigo:
Código:
IBSql1.SQL.Text := "UPDATE TABLA SET CAMPO1 = CAMPO1 WHERE ID=" + IBQuery1.FieldByName('ID').ASINTEGER;
IBSql1.ExecQuery;
--Cuando el usuario termine de "ver" el registro, habrá que hacer un commit de la transacción para liberar el registro.