En el codigo debe cambiar
por
El procedimiento Open se usa sólo cuando se van a traer datos, es decir, cuando se trata de un
Select, para
Insert y
Update se utiliza ExecSQL.
El segundo error se debe a que alguien modificó el registro antes y todavía no se hizo un commit o rollback. Revisa que hagas commit o rollback al final de cada transacción.
Un saúdo.