Select statement causes Cannot update read-only view

Abstract: Select statement causes Cannot update read-only view

When you perform a select statement on a table this causes all the triggers associated with the table to be loaded. If those triggers refer to other tables then those tables are loaded and the process repeats. If one of the triggers updates an updatable view, and you subsequenly make the view read only, a select can cause the error : Cannot update read-only view. Below is an example:
create table tbl1
(f1 int, f2 char(10));

create table tbl2
(f3 int, f4 int, f5 char(10));

create view v1 as
select f1,f2,f3,f4,f5 from tbl1, tbl2
where tbl1.f1=tbl2.f4;

create trigger tbl1ins for tbl1 after insert as begin
insert into tbl2 (f4) values (new.f1);
end;

create trigger v1up for v1 before update as begin
update tbl1 set f2=new.f2, f1=new.f1 where f1=old.f1;
update tbl2 set f5=new.f5, f4=new.f4, f3=new.f3 where f3=old.f3; 
end;